save
This commit is contained in:
parent
76bd8f782d
commit
f7d2665d4f
6 changed files with 27 additions and 11 deletions
11
recipes/example-roda.rb
Normal file
11
recipes/example-roda.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
require 'nginx'
|
||||
|
||||
class ExampleProxy < NGINXProxy
|
||||
domain "gurgul.org"
|
||||
service "forgejo"
|
||||
user "git"
|
||||
port 3000
|
||||
end
|
||||
|
||||
puts ExampleProxy.generate
|
||||
puts ExampleProxy.available_path
|
|
@ -1,5 +0,0 @@
|
|||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
require 'erb'
|
||||
|
||||
|
||||
class NGINXProxy
|
||||
class << self
|
||||
attr_accessor :domain, :port, :service, :user
|
||||
|
||||
def domain(value = nil)
|
||||
@domain = value unless value.nil?
|
||||
@domain
|
||||
end
|
||||
|
||||
def user(value = nil)
|
||||
@user = value unless value.nil?
|
||||
@user
|
||||
end
|
||||
|
||||
def port(value = nil)
|
||||
@port = value unless value.nil?
|
||||
@port
|
||||
end
|
||||
|
||||
# This is name of the daemon that will be installed
|
||||
# This is also master name user as user if not provided
|
||||
def service(value = nil)
|
||||
@service = value unless value.nil?
|
||||
@service
|
||||
end
|
||||
|
||||
def generate
|
||||
template = File.read("proxy.erb")
|
||||
template = ERB.new(template)
|
||||
template.result(binding)
|
||||
end
|
||||
|
||||
def available_path
|
||||
"/etc/nginx/sites-available/#{service}.#{domain}"
|
||||
end
|
||||
|
||||
def enabled_path
|
||||
"/etc/nginx/sites-available/#{service}.#{domain}"
|
||||
end
|
||||
|
||||
def install
|
||||
config = generate
|
||||
File.write
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ExampleProxy < NGINXProxy
|
||||
domain "gurgul.org"
|
||||
service "forgejo"
|
||||
user "git"
|
||||
port 3000
|
||||
end
|
||||
|
||||
puts ExampleProxy.generate
|
||||
puts ExampleProxy.path
|
|
@ -1,29 +0,0 @@
|
|||
server {
|
||||
root /home/<%= service %>/;
|
||||
|
||||
index index.html index.htm;
|
||||
server_name <%= domain %>;
|
||||
listen [::]:443 ssl ipv6only=on;
|
||||
listen 443 ssl;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:<%= port %>;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/<%= domain %>/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/<%= domain %>/privkey.pem;
|
||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue