aethernal-agent 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.gitlab-ci.yml +23 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +107 -0
- data/README.md +35 -0
- data/Rakefile +31 -0
- data/Vagrantfile +32 -0
- data/aethernal-agent.gemspec +45 -0
- data/bin/console +14 -0
- data/bin/run-aa-for-test +35 -0
- data/bin/setup +8 -0
- data/exe/aa-web +7 -0
- data/lib/aethernal_agent.rb +34 -0
- data/lib/aethernal_agent/apache/apache.rb +70 -0
- data/lib/aethernal_agent/apache/templates/aa-user.conf.erb +21 -0
- data/lib/aethernal_agent/app.rb +317 -0
- data/lib/aethernal_agent/apt.rb +30 -0
- data/lib/aethernal_agent/errors.rb +17 -0
- data/lib/aethernal_agent/filesystem.rb +178 -0
- data/lib/aethernal_agent/loader.rb +56 -0
- data/lib/aethernal_agent/manifest.rb +6 -0
- data/lib/aethernal_agent/operation.rb +51 -0
- data/lib/aethernal_agent/operation_pool.rb +46 -0
- data/lib/aethernal_agent/plugins/deluge/deluge.rb +65 -0
- data/lib/aethernal_agent/plugins/deluge/manifest.yml +51 -0
- data/lib/aethernal_agent/plugins/deluge/meta/deluge.png +0 -0
- data/lib/aethernal_agent/plugins/deluge/templates/auth.erb +2 -0
- data/lib/aethernal_agent/plugins/deluge/templates/core.conf.erb +95 -0
- data/lib/aethernal_agent/plugins/deluge/templates/deluge-web.service.erb +12 -0
- data/lib/aethernal_agent/plugins/deluge/templates/deluge.apache.conf.erb +9 -0
- data/lib/aethernal_agent/plugins/deluge/templates/deluged.service.erb +12 -0
- data/lib/aethernal_agent/plugins/deluge/templates/hostlist.conf.erb +14 -0
- data/lib/aethernal_agent/plugins/deluge/templates/web.conf.erb +24 -0
- data/lib/aethernal_agent/plugins/filebrowser/filebrowser.rb +45 -0
- data/lib/aethernal_agent/plugins/filebrowser/files/filebrowser.service +12 -0
- data/lib/aethernal_agent/plugins/filebrowser/manifest.yml +51 -0
- data/lib/aethernal_agent/plugins/filebrowser/meta/filebrowser.png +0 -0
- data/lib/aethernal_agent/plugins/filebrowser/templates/filebrowser.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/gitea/files/gitea.service +12 -0
- data/lib/aethernal_agent/plugins/gitea/gitea.rb +64 -0
- data/lib/aethernal_agent/plugins/gitea/manifest.yml +53 -0
- data/lib/aethernal_agent/plugins/gitea/meta/gitea.png +0 -0
- data/lib/aethernal_agent/plugins/gitea/templates/app.ini.erb +68 -0
- data/lib/aethernal_agent/plugins/gitea/templates/gitea.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/olaris/manifest.yml +52 -0
- data/lib/aethernal_agent/plugins/olaris/meta/olaris.png +0 -0
- data/lib/aethernal_agent/plugins/olaris/olaris.rb +35 -0
- data/lib/aethernal_agent/plugins/olaris/templates/olaris.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/olaris/templates/olaris.service.erb +12 -0
- data/lib/aethernal_agent/plugins/ombi/manifest.yml +57 -0
- data/lib/aethernal_agent/plugins/ombi/meta/ombi.jpeg +0 -0
- data/lib/aethernal_agent/plugins/ombi/ombi.rb +81 -0
- data/lib/aethernal_agent/plugins/ombi/templates/ombi.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/ombi/templates/ombi.service.erb +14 -0
- data/lib/aethernal_agent/plugins/plex/files/plex.service +26 -0
- data/lib/aethernal_agent/plugins/plex/manifest.yml +49 -0
- data/lib/aethernal_agent/plugins/plex/meta/plex.png +0 -0
- data/lib/aethernal_agent/plugins/plex/plex.rb +65 -0
- data/lib/aethernal_agent/plugins/plex/templates/Preferences.xml.erb +2 -0
- data/lib/aethernal_agent/plugins/radarr/files/radarr.service +13 -0
- data/lib/aethernal_agent/plugins/radarr/manifest.yml +68 -0
- data/lib/aethernal_agent/plugins/radarr/meta/radarr.png +0 -0
- data/lib/aethernal_agent/plugins/radarr/radarr.rb +72 -0
- data/lib/aethernal_agent/plugins/radarr/templates/config.xml.erb +16 -0
- data/lib/aethernal_agent/plugins/radarr/templates/radarr.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/sonarr/files/sonarr.service +13 -0
- data/lib/aethernal_agent/plugins/sonarr/manifest.yml +66 -0
- data/lib/aethernal_agent/plugins/sonarr/meta/sonarr.jpeg +0 -0
- data/lib/aethernal_agent/plugins/sonarr/sonarr.rb +70 -0
- data/lib/aethernal_agent/plugins/sonarr/templates/config.xml.erb +16 -0
- data/lib/aethernal_agent/plugins/sonarr/templates/sonarr.apache.conf.erb +6 -0
- data/lib/aethernal_agent/plugins/vnc/files/xstartup +9 -0
- data/lib/aethernal_agent/plugins/vnc/manifest.yml +41 -0
- data/lib/aethernal_agent/plugins/vnc/meta/vnc.png +0 -0
- data/lib/aethernal_agent/plugins/vnc/templates/vnc.service.erb +14 -0
- data/lib/aethernal_agent/plugins/vnc/vnc.rb +41 -0
- data/lib/aethernal_agent/systemd.rb +123 -0
- data/lib/aethernal_agent/template.rb +57 -0
- data/lib/aethernal_agent/utils.rb +107 -0
- data/lib/aethernal_agent/version.rb +3 -0
- data/lib/aethernal_agent/webserver/api.rb +77 -0
- data/lib/aethernal_agent/webserver/core.rb +32 -0
- metadata +257 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'json'
|
2
|
+
module AethernalAgent
|
3
|
+
module Utils
|
4
|
+
def check_manifest(manifest)
|
5
|
+
if manifest.required_aethernal_agent_version
|
6
|
+
AethernalAgent.logger.debug("Checking required aethernal_agent version")
|
7
|
+
return Gem::Dependency.new('', manifest.required_aethernal_agent_version).match?('', AethernalAgent::VERSION)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def run_command(command, options = {})
|
12
|
+
AethernalAgent.logger.info "Running command: '#{command}"
|
13
|
+
# TODO: Pipe this to get acutal output of commands to return error messages when stderr is used
|
14
|
+
system(command)
|
15
|
+
end
|
16
|
+
|
17
|
+
def run_as(user, command)
|
18
|
+
run_command("sudo -iu #{user} #{command}")
|
19
|
+
end
|
20
|
+
|
21
|
+
def print_system(command)
|
22
|
+
AethernalAgent.logger.warn "pring_system is depcrated"
|
23
|
+
AethernalAgent.logger.info "Running command: '#{command}'"
|
24
|
+
system(command)
|
25
|
+
end
|
26
|
+
|
27
|
+
def random_string(length = 16)
|
28
|
+
o = [('a'..'z'),('A'..'Z')].map{|i| i.to_a}.flatten
|
29
|
+
string = (0...length).map{ o[rand(o.length)] }.join
|
30
|
+
return string
|
31
|
+
end
|
32
|
+
|
33
|
+
def check_port(port)
|
34
|
+
return false unless port
|
35
|
+
return false if port == nil
|
36
|
+
begin
|
37
|
+
server = TCPServer.new("127.0.0.1", port)
|
38
|
+
server.close
|
39
|
+
rescue Errno::EADDRINUSE, Errno::EACCES, TypeError, Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
40
|
+
return false
|
41
|
+
end
|
42
|
+
return true
|
43
|
+
end
|
44
|
+
|
45
|
+
def random_port(range = (20000..50000))
|
46
|
+
port = range.to_a.sample
|
47
|
+
if port && check_port(port)
|
48
|
+
return port.to_i
|
49
|
+
else
|
50
|
+
random_port(range)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_global_config(key)
|
55
|
+
AethernalAgent.logger.debug("Getting value for key '#{key}'")
|
56
|
+
|
57
|
+
begin
|
58
|
+
config = JSON.parse(File.read(global_config_path))
|
59
|
+
rescue Errno::ENOENT
|
60
|
+
config = {}
|
61
|
+
end
|
62
|
+
|
63
|
+
AethernalAgent.logger.debug("Value is '#{config[key.to_s]}'")
|
64
|
+
return config[key.to_s]
|
65
|
+
end
|
66
|
+
|
67
|
+
def set_global_config(key, value)
|
68
|
+
AethernalAgent.logger.debug("Setting key '#{key}' to value '#{value}'")
|
69
|
+
|
70
|
+
if File.exists?(global_config_path)
|
71
|
+
begin
|
72
|
+
config = JSON.parse(File.read(global_config_path))
|
73
|
+
rescue StandardError => e
|
74
|
+
raise "Could not read/parse global config: '#{e}'"
|
75
|
+
end
|
76
|
+
else
|
77
|
+
AethernalAgent.logger.debug("Config file does not exist yet, creating new.")
|
78
|
+
config = {}
|
79
|
+
end
|
80
|
+
|
81
|
+
config[key.to_s] = value
|
82
|
+
begin
|
83
|
+
file = File.open(global_config_path, "w")
|
84
|
+
file.write(JSON.dump(config))
|
85
|
+
file.close
|
86
|
+
rescue StandardError => e
|
87
|
+
raise "Could not write out global config file: '#{e}'"
|
88
|
+
end
|
89
|
+
|
90
|
+
FileUtils.chown("root","root", global_config_path)
|
91
|
+
end
|
92
|
+
|
93
|
+
def ubuntu_release
|
94
|
+
return "18.04"
|
95
|
+
end
|
96
|
+
|
97
|
+
def prepare_test_config
|
98
|
+
File.open(global_config_path, "w") do |f|
|
99
|
+
f.write({hostname: "test-server", container_name: "test-container"}.to_json)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def global_config_path
|
104
|
+
"/etc/aethernal_agent.config"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module AethernalAgent
|
2
|
+
module Webserver
|
3
|
+
require 'sinatra/base'
|
4
|
+
require 'sinatra/namespace'
|
5
|
+
require 'aethernal_agent'
|
6
|
+
|
7
|
+
class Api < Sinatra::Base
|
8
|
+
include AethernalAgent::Utils
|
9
|
+
register Sinatra::Namespace
|
10
|
+
|
11
|
+
configure do
|
12
|
+
set :loader, AethernalAgent::Loader.new
|
13
|
+
end
|
14
|
+
|
15
|
+
set :bind, '0.0.0.0'
|
16
|
+
|
17
|
+
use Rack::Auth::Basic, "Protected Area" do |username, password|
|
18
|
+
username == @@username && password == @@password
|
19
|
+
end
|
20
|
+
|
21
|
+
namespace "/v1" do
|
22
|
+
get "/port/?:min?/?:max?" do
|
23
|
+
min = params[:min] || 6000
|
24
|
+
max = params[:max] || 40000
|
25
|
+
return random_port(min..max).to_json
|
26
|
+
end
|
27
|
+
|
28
|
+
get "/version" do
|
29
|
+
return AethernalAgent::VERSION
|
30
|
+
end
|
31
|
+
|
32
|
+
get "/plugins" do
|
33
|
+
return settings.loader.loaded_manifests.collect{|x| x.to_h}.to_json
|
34
|
+
end
|
35
|
+
|
36
|
+
get "/operations" do
|
37
|
+
{size: @@pool.operation_size}.to_json
|
38
|
+
end
|
39
|
+
|
40
|
+
get "/operations/:uuid" do
|
41
|
+
op = @@pool.get_operation(params[:uuid])
|
42
|
+
if op.present?
|
43
|
+
{operation: op.attributes, error: nil}.to_json
|
44
|
+
else
|
45
|
+
status 404
|
46
|
+
body do
|
47
|
+
{operation: nil, error: "not found"}.to_json
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
post "/plugins/:app_name/:method_name/?:wait?" do
|
53
|
+
app = params['app_name']
|
54
|
+
method = params['method_name']
|
55
|
+
opts = JSON.parse(request.body.read)
|
56
|
+
o = AethernalAgent::Operation.new(app, method, opts)
|
57
|
+
|
58
|
+
unless params['wait'].nil?
|
59
|
+
o.run
|
60
|
+
o.to_json
|
61
|
+
else
|
62
|
+
@@pool.add_operation(o)
|
63
|
+
o.uuid.to_json
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.start(user, password, pool)
|
69
|
+
@@username = user
|
70
|
+
@@password = password
|
71
|
+
@@pool = pool
|
72
|
+
AethernalAgent.logger.debug("Starting API with username #{@@username} and password #{@@password}")
|
73
|
+
run!
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'aethernal_agent/utils'
|
2
|
+
require "aethernal_agent/webserver/api"
|
3
|
+
|
4
|
+
module AethernalAgent
|
5
|
+
module Webserver
|
6
|
+
class Core
|
7
|
+
include AethernalAgent::Utils
|
8
|
+
|
9
|
+
def start
|
10
|
+
username = get_global_config("web_username")
|
11
|
+
password = get_global_config("web_password")
|
12
|
+
if username.nil? || password.nil?
|
13
|
+
AethernalAgent.logger.info("No username or password found in config, creating one.")
|
14
|
+
|
15
|
+
username = random_string
|
16
|
+
password = random_string
|
17
|
+
|
18
|
+
set_global_config("web_username", username)
|
19
|
+
set_global_config("web_password", password)
|
20
|
+
end
|
21
|
+
|
22
|
+
AethernalAgent.logger.info("Starting BOSS - v#{AethernalAgent::VERSION}")
|
23
|
+
|
24
|
+
pool = AethernalAgent::OperationPool.new(3)
|
25
|
+
threads = []
|
26
|
+
threads << Thread.new { AethernalAgent::Webserver::Api.start(username, password, pool) }
|
27
|
+
threads << Thread.new { pool.start }
|
28
|
+
threads.each(&:join)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,257 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: aethernal-agent
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.10
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maran
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-05-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: serverspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sinatra
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.0.7
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.0.7
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sinatra-contrib
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sqlite3
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: httparty
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: Install and configure apps on the go.
|
140
|
+
email:
|
141
|
+
- maran@bytesized-hosting.com
|
142
|
+
executables:
|
143
|
+
- aa-web
|
144
|
+
extensions: []
|
145
|
+
extra_rdoc_files: []
|
146
|
+
files:
|
147
|
+
- ".gitignore"
|
148
|
+
- ".gitlab-ci.yml"
|
149
|
+
- ".rspec"
|
150
|
+
- ".ruby-gemset"
|
151
|
+
- ".ruby-version"
|
152
|
+
- Gemfile
|
153
|
+
- Gemfile.lock
|
154
|
+
- README.md
|
155
|
+
- Rakefile
|
156
|
+
- Vagrantfile
|
157
|
+
- aethernal-agent.gemspec
|
158
|
+
- bin/console
|
159
|
+
- bin/run-aa-for-test
|
160
|
+
- bin/setup
|
161
|
+
- exe/aa-web
|
162
|
+
- lib/aethernal_agent.rb
|
163
|
+
- lib/aethernal_agent/apache/apache.rb
|
164
|
+
- lib/aethernal_agent/apache/templates/aa-user.conf.erb
|
165
|
+
- lib/aethernal_agent/app.rb
|
166
|
+
- lib/aethernal_agent/apt.rb
|
167
|
+
- lib/aethernal_agent/errors.rb
|
168
|
+
- lib/aethernal_agent/filesystem.rb
|
169
|
+
- lib/aethernal_agent/loader.rb
|
170
|
+
- lib/aethernal_agent/manifest.rb
|
171
|
+
- lib/aethernal_agent/operation.rb
|
172
|
+
- lib/aethernal_agent/operation_pool.rb
|
173
|
+
- lib/aethernal_agent/plugins/deluge/deluge.rb
|
174
|
+
- lib/aethernal_agent/plugins/deluge/manifest.yml
|
175
|
+
- lib/aethernal_agent/plugins/deluge/meta/deluge.png
|
176
|
+
- lib/aethernal_agent/plugins/deluge/templates/auth.erb
|
177
|
+
- lib/aethernal_agent/plugins/deluge/templates/core.conf.erb
|
178
|
+
- lib/aethernal_agent/plugins/deluge/templates/deluge-web.service.erb
|
179
|
+
- lib/aethernal_agent/plugins/deluge/templates/deluge.apache.conf.erb
|
180
|
+
- lib/aethernal_agent/plugins/deluge/templates/deluged.service.erb
|
181
|
+
- lib/aethernal_agent/plugins/deluge/templates/hostlist.conf.erb
|
182
|
+
- lib/aethernal_agent/plugins/deluge/templates/web.conf.erb
|
183
|
+
- lib/aethernal_agent/plugins/filebrowser/filebrowser.rb
|
184
|
+
- lib/aethernal_agent/plugins/filebrowser/files/filebrowser.service
|
185
|
+
- lib/aethernal_agent/plugins/filebrowser/manifest.yml
|
186
|
+
- lib/aethernal_agent/plugins/filebrowser/meta/filebrowser.png
|
187
|
+
- lib/aethernal_agent/plugins/filebrowser/templates/filebrowser.apache.conf.erb
|
188
|
+
- lib/aethernal_agent/plugins/gitea/files/gitea.service
|
189
|
+
- lib/aethernal_agent/plugins/gitea/gitea.rb
|
190
|
+
- lib/aethernal_agent/plugins/gitea/manifest.yml
|
191
|
+
- lib/aethernal_agent/plugins/gitea/meta/gitea.png
|
192
|
+
- lib/aethernal_agent/plugins/gitea/templates/app.ini.erb
|
193
|
+
- lib/aethernal_agent/plugins/gitea/templates/gitea.apache.conf.erb
|
194
|
+
- lib/aethernal_agent/plugins/olaris/manifest.yml
|
195
|
+
- lib/aethernal_agent/plugins/olaris/meta/olaris.png
|
196
|
+
- lib/aethernal_agent/plugins/olaris/olaris.rb
|
197
|
+
- lib/aethernal_agent/plugins/olaris/templates/olaris.apache.conf.erb
|
198
|
+
- lib/aethernal_agent/plugins/olaris/templates/olaris.service.erb
|
199
|
+
- lib/aethernal_agent/plugins/ombi/manifest.yml
|
200
|
+
- lib/aethernal_agent/plugins/ombi/meta/ombi.jpeg
|
201
|
+
- lib/aethernal_agent/plugins/ombi/ombi.rb
|
202
|
+
- lib/aethernal_agent/plugins/ombi/templates/ombi.apache.conf.erb
|
203
|
+
- lib/aethernal_agent/plugins/ombi/templates/ombi.service.erb
|
204
|
+
- lib/aethernal_agent/plugins/plex/files/plex.service
|
205
|
+
- lib/aethernal_agent/plugins/plex/manifest.yml
|
206
|
+
- lib/aethernal_agent/plugins/plex/meta/plex.png
|
207
|
+
- lib/aethernal_agent/plugins/plex/plex.rb
|
208
|
+
- lib/aethernal_agent/plugins/plex/templates/Preferences.xml.erb
|
209
|
+
- lib/aethernal_agent/plugins/radarr/files/radarr.service
|
210
|
+
- lib/aethernal_agent/plugins/radarr/manifest.yml
|
211
|
+
- lib/aethernal_agent/plugins/radarr/meta/radarr.png
|
212
|
+
- lib/aethernal_agent/plugins/radarr/radarr.rb
|
213
|
+
- lib/aethernal_agent/plugins/radarr/templates/config.xml.erb
|
214
|
+
- lib/aethernal_agent/plugins/radarr/templates/radarr.apache.conf.erb
|
215
|
+
- lib/aethernal_agent/plugins/sonarr/files/sonarr.service
|
216
|
+
- lib/aethernal_agent/plugins/sonarr/manifest.yml
|
217
|
+
- lib/aethernal_agent/plugins/sonarr/meta/sonarr.jpeg
|
218
|
+
- lib/aethernal_agent/plugins/sonarr/sonarr.rb
|
219
|
+
- lib/aethernal_agent/plugins/sonarr/templates/config.xml.erb
|
220
|
+
- lib/aethernal_agent/plugins/sonarr/templates/sonarr.apache.conf.erb
|
221
|
+
- lib/aethernal_agent/plugins/vnc/files/xstartup
|
222
|
+
- lib/aethernal_agent/plugins/vnc/manifest.yml
|
223
|
+
- lib/aethernal_agent/plugins/vnc/meta/vnc.png
|
224
|
+
- lib/aethernal_agent/plugins/vnc/templates/vnc.service.erb
|
225
|
+
- lib/aethernal_agent/plugins/vnc/vnc.rb
|
226
|
+
- lib/aethernal_agent/systemd.rb
|
227
|
+
- lib/aethernal_agent/template.rb
|
228
|
+
- lib/aethernal_agent/utils.rb
|
229
|
+
- lib/aethernal_agent/version.rb
|
230
|
+
- lib/aethernal_agent/webserver/api.rb
|
231
|
+
- lib/aethernal_agent/webserver/core.rb
|
232
|
+
homepage: https://aethernal.host
|
233
|
+
licenses: []
|
234
|
+
metadata:
|
235
|
+
homepage_uri: https://aethernal.host
|
236
|
+
source_code_uri: http://gitlab.com/olaris/aethernal_agent
|
237
|
+
changelog_uri: http://gitlab.com/olaris/aethernal_agent
|
238
|
+
post_install_message:
|
239
|
+
rdoc_options: []
|
240
|
+
require_paths:
|
241
|
+
- lib
|
242
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
243
|
+
requirements:
|
244
|
+
- - ">="
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '0'
|
247
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - ">="
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '0'
|
252
|
+
requirements: []
|
253
|
+
rubygems_version: 3.0.3
|
254
|
+
signing_key:
|
255
|
+
specification_version: 4
|
256
|
+
summary: Aethernal Agent for Aethernal.host.
|
257
|
+
test_files: []
|