This commit is contained in:
Artur Gurgul 2025-08-06 08:00:01 +02:00
parent 76bd8f782d
commit f7d2665d4f
6 changed files with 27 additions and 11 deletions

View file

@ -0,0 +1,5 @@
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}

View 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;
}

View file

@ -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
View 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
View file

@ -0,0 +1,5 @@
module User
end