59 lines
1.1 KiB
Ruby
59 lines
1.1 KiB
Ruby
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
|