Set up assets.kosmos.org for shared static file/webfont hosting #309
@ -30,6 +30,7 @@
|
|||||||
"kosmos_discourse::default",
|
"kosmos_discourse::default",
|
||||||
"kosmos_drone",
|
"kosmos_drone",
|
||||||
"kosmos_drone::default",
|
"kosmos_drone::default",
|
||||||
|
"kosmos_assets::nginx_site",
|
||||||
"kosmos_kvm::host",
|
"kosmos_kvm::host",
|
||||||
"kosmos-ejabberd::firewall",
|
"kosmos-ejabberd::firewall",
|
||||||
"kosmos_zerotier::firewall",
|
"kosmos_zerotier::firewall",
|
||||||
@ -81,6 +82,7 @@
|
|||||||
"role[gitea]",
|
"role[gitea]",
|
||||||
"role[discourse]",
|
"role[discourse]",
|
||||||
"role[drone]",
|
"role[drone]",
|
||||||
|
"recipe[kosmos_assets::nginx_site]",
|
||||||
"recipe[kosmos_kvm::host]",
|
"recipe[kosmos_kvm::host]",
|
||||||
"recipe[kosmos-ejabberd::firewall]",
|
"recipe[kosmos-ejabberd::firewall]",
|
||||||
"recipe[kosmos_zerotier::firewall]"
|
"recipe[kosmos_zerotier::firewall]"
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
#
|
||||||
|
# Cookbook Name:: kosmos-nginx
|
||||||
|
# Recipe:: with_perl
|
||||||
|
#
|
||||||
|
|
||||||
node.override['nginx']['default_site_enabled'] = false
|
node.override['nginx']['default_site_enabled'] = false
|
||||||
node.override['nginx']['server_tokens'] = 'off'
|
node.override['nginx']['server_tokens'] = 'off'
|
||||||
|
|
||||||
|
3
site-cookbooks/kosmos_assets/attributes/default.rb
Normal file
3
site-cookbooks/kosmos_assets/attributes/default.rb
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
node.default["kosmos_assets"]["domain"] = "assets.kosmos.org"
|
||||||
|
node.default["kosmos_assets"]["repo"] = "https://gitea.kosmos.org/kosmos/assets.kosmos.org.git"
|
||||||
|
node.default["kosmos_assets"]["revision"] = "master"
|
10
site-cookbooks/kosmos_assets/metadata.rb
Normal file
10
site-cookbooks/kosmos_assets/metadata.rb
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name 'kosmos_assets'
|
||||||
|
maintainer 'Kosmos'
|
||||||
|
maintainer_email 'ops@kosmos.org'
|
||||||
|
license 'MIT'
|
||||||
|
description 'Configures static asset Web hosting'
|
||||||
|
long_description 'Configures static asset Web hosting'
|
||||||
|
version '1.0.0'
|
||||||
|
chef_version '>= 15.10' if respond_to?(:chef_version)
|
||||||
|
|
||||||
|
depends "kosmos-nginx"
|
38
site-cookbooks/kosmos_assets/recipes/nginx_site.rb
Normal file
38
site-cookbooks/kosmos_assets/recipes/nginx_site.rb
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Cookbook:: kosmos_assets
|
||||||
|
# Recipe:: nginx_site
|
||||||
|
#
|
||||||
|
|
||||||
|
include_recipe "kosmos-nginx"
|
||||||
|
|
||||||
|
domain = node["kosmos_assets"]["domain"]
|
||||||
|
|
||||||
|
nginx_certbot_site domain
|
||||||
|
|
||||||
|
directory "/var/www/#{domain}/site" do
|
||||||
|
user node["nginx"]["user"]
|
||||||
|
group node["nginx"]["group"]
|
||||||
|
mode "0755"
|
||||||
|
end
|
||||||
|
|
||||||
|
git "/var/www/#{domain}/site" do
|
||||||
|
user node["nginx"]["user"]
|
||||||
|
group node["nginx"]["group"]
|
||||||
|
repository node["kosmos_assets"]["repo"]
|
||||||
|
revision node["kosmos_assets"]["revision"]
|
||||||
|
action :sync
|
||||||
|
end
|
||||||
|
|
||||||
|
template "#{node["nginx"]["dir"]}/sites-available/#{domain}" do
|
||||||
|
source "nginx_conf_assets.erb"
|
||||||
|
owner node["nginx"]["user"]
|
||||||
|
mode 0640
|
||||||
|
variables domain: domain,
|
||||||
|
ssl_cert: "/etc/letsencrypt/live/#{domain}/fullchain.pem",
|
||||||
|
ssl_key: "/etc/letsencrypt/live/#{domain}/privkey.pem"
|
||||||
|
notifies :reload, "service[nginx]", :delayed
|
||||||
|
end
|
||||||
|
|
||||||
|
nginx_site domain do
|
||||||
|
action :enable
|
||||||
|
end
|
25
site-cookbooks/kosmos_assets/templates/nginx_conf_assets.erb
Normal file
25
site-cookbooks/kosmos_assets/templates/nginx_conf_assets.erb
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<% if File.exist?(@ssl_cert) && File.exist?(@ssl_key) -%>
|
||||||
|
# Generated by Chef
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl http2;
|
||||||
|
server_name <%= @domain %>;
|
||||||
|
|
||||||
|
root /var/www/<%= @domain %>/site;
|
||||||
|
|
||||||
|
access_log off;
|
||||||
|
gzip_static on;
|
||||||
|
gzip_comp_level 5;
|
||||||
|
|
||||||
|
location ~* .(css)$ {
|
||||||
|
expires 1d;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* .(woff|woff2)$ {
|
||||||
|
expires max;
|
||||||
|
}
|
||||||
|
|
||||||
|
ssl_certificate <%= @ssl_cert %>;
|
||||||
|
ssl_certificate_key <%= @ssl_key %>;
|
||||||
|
}
|
||||||
|
<% end -%>
|
Loading…
x
Reference in New Issue
Block a user