save
This commit is contained in:
parent
76bd8f782d
commit
f7d2665d4f
6 changed files with 27 additions and 11 deletions
5
lib/data/templates/nginx/default.erb
Normal file
5
lib/data/templates/nginx/default.erb
Normal file
|
@ -0,0 +1,5 @@
|
|||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
29
lib/data/templates/nginx/proxy.erb
Normal file
29
lib/data/templates/nginx/proxy.erb
Normal file
|
@ -0,0 +1,29 @@
|
|||
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;
|
||||
}
|
|
@ -7,6 +7,7 @@ require 'fileutils'
|
|||
require 'open3'
|
||||
|
||||
# make for: the user, system, package
|
||||
# user/usr, system/sys, package/pkg
|
||||
|
||||
# as regular user, if dependencies provided
|
||||
# user: $HOME/.local
|
||||
|
|
58
lib/nginx.rb
Normal file
58
lib/nginx.rb
Normal file
|
@ -0,0 +1,58 @@
|
|||
require 'erb'
|
||||
|
||||
|
||||
class NGINXProxy
|
||||
class << self
|
||||
attr_accessor :domain, :port, :service, :user, :willcard
|
||||
|
||||
def willcard(value = nil)
|
||||
@willcard = value unless value.nil?
|
||||
@willcard
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
## bundle exec rackup -s puma -b unix:///run/user/1000/http.sock
|
||||
|
||||
def generate
|
||||
template_path = File.join(__dir__, 'data', 'templates', 'nginx', 'proxy.erb')
|
||||
template = File.read(template_path)
|
||||
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
|
||||
|
5
lib/user.rb
Normal file
5
lib/user.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
|
||||
module User
|
||||
|
||||
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue