Compare commits
232 Commits
57f4e26b0e
...
main
Author | SHA1 | Date | |
---|---|---|---|
82a2bab55e | |||
|
a7d40ec41a | ||
680f6d5822 | |||
|
1af3c8ab1e | ||
37e7b83077 | |||
|
becd96416a | ||
|
09371f8b4b | ||
d723b4daf5 | |||
|
56e6e4e789 | ||
366fa1d6b8 | |||
|
f5130b0c57 | ||
082ae8fcf8 | |||
|
1ef0fd1f5c | ||
984a61d036 | |||
|
ca41276ecf | ||
08c4e49d82 | |||
|
7a2a4e90ed | ||
b232e22427 | |||
|
4bb61da615 | ||
2649856b30 | |||
|
e3862bbeb7 | ||
bf944dee1b | |||
|
fc0197dcf1 | ||
bc26466fab | |||
|
c30a5ceadb | ||
24b9f416b5 | |||
|
fcc452af8a | ||
5598cd2e4e | |||
|
daaa19d32a | ||
a860503297 | |||
|
2129a7e8f9 | ||
aecfab545d | |||
|
22e37d90af | ||
cf27b29d98 | |||
|
efd077e41a | ||
234f2b8379 | |||
|
3fbdace533 | ||
858ddb310a | |||
|
f065b4f6ce | ||
c48ee36943 | |||
|
05f0a6d10f | ||
b6bf808328 | |||
|
01ca5a196c | ||
73419aeff8 | |||
|
b5c693bc8b | ||
6bf99e7a1a | |||
|
37e93e661d | ||
d46cc3e801 | |||
|
9c0932bdd4 | ||
885d896777 | |||
|
a8f4533991 | ||
49491e3116 | |||
|
feace468dc | ||
00d3f23702 | |||
|
4e19534cae | ||
|
5fd409e79c | ||
|
0e487b02c5 | ||
7019222a22 | |||
|
3f73d1e42d | ||
927d7e669e | |||
|
6d65026806 | ||
892e05fb60 | |||
|
5aca166c34 | ||
ea7ee3aec9 | |||
|
70e144b7f8 | ||
23501f7760 | |||
|
fd179866b2 | ||
ecc21d1639 | |||
|
46ff9e08cc | ||
|
5de24e19fe | ||
d64872f85e | |||
|
d6fe96f2c7 | ||
|
e62029bca4 | ||
e928cca06a | |||
|
31c72181b4 | ||
a0cced089b | |||
|
459ca0e019 | ||
e43b20a94c | |||
|
324ad45ef3 | ||
ac7c52def1 | |||
|
4b91fa6f3f | ||
f26a4d60d9 | |||
|
f4f66398de | ||
2f343b4b67 | |||
|
b07b6c7800 | ||
fe5b98391b | |||
d9c3d3f6c1 | |||
9827a6bd85 | |||
a49f5baa13 | |||
9fe2be7b26 | |||
|
2a6f54d65e | ||
48a20f2681 | |||
|
b8ac9eb0ef | ||
|
8e61ae53e3 | ||
|
fbb8934b2d | ||
db6a375c5e | |||
|
88ae6dd365 | ||
7eda10b29d | |||
cc76e60006 | |||
5d1297571b | |||
f2f97551d2 | |||
3f2960628c | |||
|
9bf8622848 | ||
|
92fbb27e80 | ||
|
ea7bec4dfc | ||
|
90e071dc3a | ||
|
0fd3ca5619 | ||
|
62da50fde4 | ||
db451f42bd | |||
|
f138652ea0 | ||
|
998be9eb47 | ||
064ad0286c | |||
2355be9a77 | |||
|
fa477d5dd3 | ||
|
dde0657742 | ||
|
cc9ac4842d | ||
|
f62c9164ca | ||
|
5bd17e388f | ||
36d0cee2d6 | |||
|
141fc5e27d | ||
|
82ff8f5d09 | ||
|
42177acc46 | ||
|
d645602e3e | ||
|
267d4877eb | ||
|
2ebfd5c271 | ||
d5dd3452ec | |||
d34446f4c3 | |||
7b8db6df36 | |||
|
0be8505daa | ||
0d90f06924 | |||
ae307d0e69 | |||
|
ae91eb2295 | ||
|
48756ecb6f | ||
8792847214 | |||
57ef0b4c31 | |||
13d2abb6ca | |||
|
d85ae5a86d | ||
2f06e68a49 | |||
8854fec3e1 | |||
c43a84b5b3 | |||
0eb8444a56 | |||
74f0c57dda | |||
6275cada60 | |||
8b082fa0dc | |||
cbfb59b600 | |||
b002355bc2 | |||
19e4624fff | |||
|
dcc5d6b969 | ||
|
cf828687a2 | ||
|
d6ffd65d40 | ||
95547d3bea | |||
a089017add | |||
f9bee3dbc3 | |||
ed4d0a4009 | |||
7361704458 | |||
5995774c92 | |||
71899a308d | |||
62c620b3ee | |||
420489c7a0 | |||
d94cf9db2c | |||
8d6b4ac21d | |||
ca6a87d10b | |||
4cff7cc9ef | |||
292b43d721 | |||
b0e315eb48 | |||
d00a4c2cbf | |||
1b9a6c4f03 | |||
36f2a5b592 | |||
81d788dd6c | |||
|
9103bf7e95 | ||
|
757e69f292 | ||
|
c435ff3920 | ||
d242495c5b | |||
adee5641c8 | |||
221cbe38c8 | |||
feb5fcc501 | |||
ad4ea88315 | |||
|
011ebc61f9 | ||
|
7d659b13ef | ||
280e2c70a8 | |||
2a2f42cd8d | |||
711150d71d | |||
ff5b7cb0b2 | |||
c2a06edec0 | |||
bbbe19d738 | |||
c5fea172f8 | |||
cf70bf0f8d | |||
e5bd35fe95 | |||
36bf216e73 | |||
709b07cfc3 | |||
12c818c73d | |||
fb0846a26d | |||
262f06ae39 | |||
3a8c79d875 | |||
|
d1a70918d6 | ||
|
e0a0727934 | ||
|
658d6b08dd | ||
|
bac395cdce | ||
|
721997c5cd | ||
|
8743bf0f79 | ||
|
bff7f9d8ae | ||
|
90b4056201 | ||
|
71c800db43 | ||
b9770f4ec9 | |||
04650b0133 | |||
|
01a8c050f8 | ||
|
f15276452b | ||
|
8799566c98 | ||
|
447b3c7ba2 | ||
6863ee42d8 | |||
a524c0e65c | |||
|
48cbbd824e | ||
|
05f3633dd7 | ||
|
7705cb90f5 | ||
|
48aacadbc7 | ||
|
dc810dd79e | ||
|
86fcc17a23 | ||
|
64d4bd1dd7 | ||
|
9cf7e715cc | ||
|
64aa618977 | ||
|
b182606574 | ||
|
88ae840128 | ||
|
25e37aed69 | ||
|
45d8005272 | ||
|
6ca198fb2b | ||
|
be97aaa272 | ||
|
e3df2a911b | ||
|
70825a2299 | ||
|
060a3c8ffd | ||
|
74fc04beb6 | ||
|
dd84f317d4 | ||
|
02cebcf6b8 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*tmp*
|
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"leantimemysql": {
|
||||
"MARIADB_DATABASE": "#DB_MYSQL",
|
||||
"MARIADB_USER": "#DB_USER",
|
||||
"MARIADB_PASSWORD": "#DB_PASSWORD",
|
||||
"MARIADB_ROOT_PASSWORD": "#DB_ROOT_PASSWORD"
|
||||
},
|
||||
"leantimeapp": {
|
||||
"LEAN_DB_USER": "#DB_USER",
|
||||
"LEAN_DB_PASSWORD": "#DB_PASSWORD",
|
||||
"LEAN_DB_HOST": "leantimemysql-db",
|
||||
"LEAN_DB_DATABASE": "#DB_MYSQL",
|
||||
"LEAN_OIDC_CLIENT_SECRET": "#OIDC_CLIENT_SECRET",
|
||||
"LEAN_S3_SECRET": "#S3_SECRET",
|
||||
"LEAN_SESSION_PASSWORD": "#SESSION_PASSWORD"
|
||||
}
|
||||
}
|
@@ -1,302 +0,0 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "leantime",
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "leantime",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SYSTEM_DATA",
|
||||
"DEST": "/etc/system/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SYSTEM_LOG",
|
||||
"DEST": "/etc/system/log",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/leantime/leantime.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/leantime/db && mkdir -p /etc/system/log/leantime/db && mkdir -p /etc/user/data/leantime/data/plugins && mkdir -p /etc/user/data/leantime/data/public && mkdir -p /etc/user/data/leantime/data/user && chmod 770 -R /etc/user/data/leantime/data && chown -R 82:82 /etc/user/data/leantime/data",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "mariadb:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "leantimemysql-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "leantime-net",
|
||||
"SELECTOR": "leantimemysql",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/leantime/db",
|
||||
"DEST": "/var/lib/mysql",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/log/leantime/db",
|
||||
"DEST": "/var/lib/mysql/mysql-bin",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "3306",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": "3306"
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/leantime/leantime.json"
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "leantime/leantime:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "leantimeapp",
|
||||
"MEMORY": "1024M",
|
||||
"NETWORK": "leantime-net",
|
||||
"SELECTOR": "leantime-app",
|
||||
"DNS": [
|
||||
"coredns"
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/leantime/data/public",
|
||||
"DEST": "/var/www/html/public/userfiles",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/leantime/data/user",
|
||||
"DEST": "/var/www/html/userfiles",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/leantime/data/plugins",
|
||||
"DEST": "/var/www/html/app/Plugins",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "80",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"LEAN_RATELIMIT_GENERAL": "1000"
|
||||
},
|
||||
{
|
||||
"LEAN_RATELIMIT_API": "10"
|
||||
},
|
||||
{
|
||||
"LEAN_RATELIMIT_AUTH": "20"
|
||||
},
|
||||
{
|
||||
"LEAN_LDAP_USE_LDAP": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_USER_FILE_PATH": "userfiles/"
|
||||
},
|
||||
{
|
||||
"LEAN_PORT": "80"
|
||||
},
|
||||
{
|
||||
"LEAN_APP_URL": "https://#LEANTIME_DOMAIN"
|
||||
},
|
||||
{
|
||||
"LEAN_APP_DIR": "leantime/"
|
||||
},
|
||||
{
|
||||
"LEAN_DEBUG": "DEBUG"
|
||||
},
|
||||
{
|
||||
"LEAN_SITENAME": "#LEANTIME_SITENAME"
|
||||
},
|
||||
{
|
||||
"LEAN_LANGUAGE": "#LEANTIME_LANG"
|
||||
},
|
||||
{
|
||||
"LEAN_DEFAULT_TIMEZONE": "#LEANTIME_TZ"
|
||||
},
|
||||
{
|
||||
"LEAN_LOG_PATH": "log/"
|
||||
},
|
||||
{
|
||||
"LEAN_DISABLE_LOGIN_FORM": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_SESSION_EXPIRATION": "#SESSION_EXPIRATION"
|
||||
},
|
||||
{
|
||||
"LEAN_SESSION_SECURE": "#SESSION_SECURITY"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_RETURN": ""
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_USE_SMTP": "true"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_HOSTS": "#LEANTIME_SMTP"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_AUTH": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_USERNAME": ""
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_PASSWORD": ""
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_AUTO_TLS": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_SECURE": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_SSLNOVERIFY": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_EMAIL_SMTP_PORT": "25"
|
||||
},
|
||||
{
|
||||
"LEAN_LDAP_USE_LDAP": "false"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_ENABLE": "#OIDC_ENABLE"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_CLIENT_ID": "#OIDC_CLIENT_ID"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_CREATE_USER": "#OIDC_CREATE_USER"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_DEFAULT_ROLE": "20"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_PROVIDER_URL": "#OIDC_PROVIDER_URL"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_AUTH_URL_OVERRIDE": "#OIDC_AUTH_URL_OVERRIDE"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_TOKEN_URL_OVERRIDE": "#OIDC_TOKEN_URL_OVERRIDE"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_USERINFO_URL_OVERRIDE": "#OIDC_USERINFO_URL_OVERRIDE"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_SCOPES": "user:email,read:user"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_FIELD_EMAIL": "0.email"
|
||||
},
|
||||
{
|
||||
"LEAN_OIDC_FIELD_FIRSTNAME": "name"
|
||||
},
|
||||
{
|
||||
"LEAN_LOGO_PATH": "/dist/images/logo.svg"
|
||||
},
|
||||
{
|
||||
"LEAN_PRINT_LOGO_URL": "/dist/images/logo.png"
|
||||
},
|
||||
{
|
||||
"LEAN_DEFAULT_THEME": "default"
|
||||
},
|
||||
{
|
||||
"LEAN_PRIMARY_COLOR": "#006d9f"
|
||||
},
|
||||
{
|
||||
"LEAN_SECONDARY_COLOR": "#00a886"
|
||||
},
|
||||
{
|
||||
"LEAN_USE_S3": "#LEANTIME_USE_S3"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_KEY": "#S3_KEY"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_BUCKET": "#S3_BUCKET"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_USE_PATH_STYLE_ENDPOINT": "#S3_USE_PATH_STYLE_ENDPOINT"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_REGION": "#S3_REGION"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_FOLDER_NAME": "#S3_FOLDER_NAME"
|
||||
},
|
||||
{
|
||||
"LEAN_S3_END_POINT": "#S3_END_POINT"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/leantime/leantime.json"
|
||||
],
|
||||
"EXTRA": "",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [
|
||||
"firewall-leantime-dns"
|
||||
],
|
||||
"POST_START": [
|
||||
"firewall-leantime-smtp",
|
||||
"firewall-leantime",
|
||||
"domain-leantime"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,118 +0,0 @@
|
||||
{
|
||||
"name": "leantime",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Please add LeanTime domain:",
|
||||
"key": "LEANTIME_DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Do you use any additional location path? (optional)\n(do not miss '/' character!)",
|
||||
"key": "LEANTIME_LOCATION_PATH",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"description": "Please add your deploy name (default is LeanTime)",
|
||||
"key": "LEANTIME_SITENAME",
|
||||
"value": "LeanTime"
|
||||
},
|
||||
{
|
||||
"description": "Please add your deploy default language (default is en-US)",
|
||||
"key": "LEANTIME_LANG",
|
||||
"value": "en-US"
|
||||
},
|
||||
{
|
||||
"description": "Please add your deploy default timezone (default is Europe/Budapest)",
|
||||
"key": "LEANTIME_TZ",
|
||||
"value": "Europe/Budapest"
|
||||
},
|
||||
{
|
||||
"description": "Do you want to disable login form for public?",
|
||||
"key": "DISABLE_LOGIN",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"description": "MYSQL database name",
|
||||
"key": "DB_MYSQL",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "time|md5|10"
|
||||
},
|
||||
{
|
||||
"description": "MYSQL username",
|
||||
"key": "DB_USER",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "time|md5|8"
|
||||
},
|
||||
{
|
||||
"description": "MYSQL password for user",
|
||||
"key": "DB_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|md5|12"
|
||||
},
|
||||
{
|
||||
"description": "MYSQL root user password",
|
||||
"key": "DB_ROOT_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|sha256|20"
|
||||
},
|
||||
{
|
||||
"description": "Do you want to set up OIDC provider? (default is false)",
|
||||
"key": "OIDC_ENABLE",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"description": "Please add OIDC user key:",
|
||||
"key": "OIDC_CLIENT_KEY",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"description": "Please add OIDC client secret:",
|
||||
"key": "OIDC_CLIENT_SECRET",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"description": "Do you want to set up S3 bucket server? (default is false)",
|
||||
"key": "LEANTIME_USE_S3",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"description": "Session password",
|
||||
"key": "SESSION_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|sha256|20"
|
||||
},
|
||||
{
|
||||
"description": "Please add session expiration time in seconds (defaults is 28800)",
|
||||
"key": "SESSION_EXPIRATION",
|
||||
"value": "28800"
|
||||
},
|
||||
{
|
||||
"description": "Please add a strong password for sessions",
|
||||
"key": "SESSION_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|sha256|20"
|
||||
},
|
||||
{
|
||||
"description": "Please set LeanTime access mode (defaults is https)",
|
||||
"key": "SESSION_SECURITY",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please set SMTP host for sending emails",
|
||||
"key": "LEANTIME_SMTP",
|
||||
"value": "smtp-mail"
|
||||
},
|
||||
{
|
||||
"description": "Do you want to connect an S3 bucket provider?",
|
||||
"key": "LEANTIME_USE_S3",
|
||||
"value": "false"
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "filebrowser",
|
||||
"DOMAIN": "#FILEBROWSER_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"PORT": "80"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#FILEBROWSER_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "filebrowser",
|
||||
"DOMAIN": "#FILEBROWSER_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -21,7 +21,7 @@
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/jellyfin/media && mkdir -p /etc/user/data/transmission/downloads/complete",
|
||||
"CMD": "mkdir -p /etc/user/data/jellyfin/media && chown -R 1000:1000 /etc/user/data/jellyfin/media && mkdir -p /etc/user/data/transmission/downloads/complete",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
@@ -57,11 +57,11 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/filebrowser/filebrowser.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh",
|
||||
"CMD": "/filebrowser config init && /filebrowser users add \"$FILEBROWSER_USER\" \"$FILEBROWSER_PASS\" --perm.admin && /filebrowser",
|
||||
"CMD": "if [ ! -f /database/filebrowser.db ]; then cd /database ; /bin/filebrowser config init && /bin/filebrowser users add \"$FILEBROWSER_USER\" \"$FILEBROWSER_PASS\" --perm.admin && /init.sh; else /init.sh ; fi",
|
||||
"PRE_START": "null",
|
||||
"POST_START": [
|
||||
"firewall-filebrowser",
|
||||
|
File diff suppressed because one or more lines are too long
60
gitea/domain-gitea.json
Normal file
60
gitea/domain-gitea.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "gitea",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "gitea-app"
|
||||
},
|
||||
{
|
||||
"PORT": "3000"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
76
gitea/firewall-gitea-dns.json
Normal file
76
gitea/firewall-gitea-dns.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"UPDATE": "true",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "gitea-app"
|
||||
},
|
||||
{
|
||||
"TARGET": "coredns"
|
||||
},
|
||||
{
|
||||
"TYPE": "udp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "53"
|
||||
},
|
||||
{
|
||||
"COMMENT": "gitea application access for local dns"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "",
|
||||
"PRE_START": [],
|
||||
"POST_START": []
|
||||
}
|
||||
]
|
||||
}
|
@@ -49,7 +49,7 @@
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "leantime-app"
|
||||
"SOURCE": "gitea-app"
|
||||
},
|
||||
{
|
||||
"TARGET": "smtp"
|
||||
@@ -61,7 +61,7 @@
|
||||
"TARGET_PORT": "25"
|
||||
},
|
||||
{
|
||||
"COMMENT": "leantime to smtp"
|
||||
"COMMENT": "gitea to smtp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
75
gitea/firewall-gitea.json
Normal file
75
gitea/firewall-gitea.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "smarthostbackend"
|
||||
},
|
||||
{
|
||||
"TARGET": "gitea-app"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "3000"
|
||||
},
|
||||
{
|
||||
"COMMENT": "gitea"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
22
gitea/gitea-secret.json
Normal file
22
gitea/gitea-secret.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"giteapostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
|
||||
},
|
||||
"giteaapp": {
|
||||
"GITEA__database__DB_TYPE": "postgres",
|
||||
"GITEA__database__HOST": "giteapostgres-db",
|
||||
"GITEA__database__NAME": "#POSTGRES_DB",
|
||||
"GITEA__database__USER": "#POSTGRES_USER",
|
||||
"GITEA__database__PASSWD": "#POSTGRES_PASSWORD",
|
||||
"GITEA__mailer__ENABLED": "#MAIL_ENABLE",
|
||||
"GITEA__mailer__FROM": "#MAIL_FROM",
|
||||
"GITEA__mailer__PROTOCOL": "#MAIL_PROTOCOL",
|
||||
"GITEA__mailer__SMTP_ADDR": "#MAIL_SMTP_ADDR",
|
||||
"GITEA__mailer__SMTP_PORT": "#MAIL_SMTP_PORT",
|
||||
"GITEA__mailer__USER": "#MAIL_USER",
|
||||
"GITEA__mailer__PASSWD": "#MAIL_PASSWORD"
|
||||
}
|
||||
}
|
110
gitea/service-gitea.json
Normal file
110
gitea/service-gitea.json
Normal file
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "gitea",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "gitea-init",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/gitea/db && mkdir -p /etc/user/data/gitea/data && chown -R 1000:1000 /etc/user/data/gitea",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "postgres:15-alpine",
|
||||
"NAME": "giteapostgres-db",
|
||||
"UPDATE": "true",
|
||||
"ROLES": "postgres-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "gitea-net",
|
||||
"SELECTOR": "giteapostgres-db",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/gitea/db",
|
||||
"DEST": "/var/lib/postgresql/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/gitea/gitea.json"
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"POSTGRES_INITDB_ARGS": "--encoding=UTF8 --locale=C"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--label logging=promtail_user --label logging_jobname=containers --restart unless-stopped",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [],
|
||||
"POST_START": []
|
||||
},
|
||||
{
|
||||
"IMAGE": "gitea/gitea:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "giteaapp",
|
||||
"DNS": [
|
||||
"coredns"
|
||||
],
|
||||
"MEMORY": "512M",
|
||||
"SELECTOR": "gitea-app",
|
||||
"NETWORK": "gitea-net",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/gitea/data",
|
||||
"DEST": "/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "3000",
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "22",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "null",
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/gitea/gitea.json"
|
||||
],
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": [
|
||||
"firewall-gitea-dns",
|
||||
"firewall-gitea-smtp",
|
||||
"firewall-gitea",
|
||||
"domain-gitea"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
87
gitea/template.json
Normal file
87
gitea/template.json
Normal file
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "guacamole",
|
||||
"DOMAIN": "#GUACAMOLE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -26,10 +26,10 @@
|
||||
"TARGET": "guacamoletomcat"
|
||||
},
|
||||
{
|
||||
"PORT": "8080"
|
||||
"PORT": "8080/guacamole/"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#GUACAMOLE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "guacamole",
|
||||
"DOMAIN": "#GUACAMOLE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -39,7 +39,7 @@
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "mariadb:latest",
|
||||
"IMAGE": "mariadb:11.4",
|
||||
"UPDATE": "true",
|
||||
"NAME": "guacamolemysql-db",
|
||||
"MEMORY": "256M",
|
||||
@@ -86,7 +86,7 @@
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "safebox/guacamole-guacd",
|
||||
"IMAGE": "safebox/guacamole-server:1.6",
|
||||
"UPDATE": "true",
|
||||
"NAME": "guacd-app",
|
||||
"MEMORY": "256M",
|
||||
@@ -110,7 +110,7 @@
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"EXTRA": "",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
@@ -118,7 +118,7 @@
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "safebox/guacamole-tomcat",
|
||||
"IMAGE": "safebox/guacamole-tomcat:1.6",
|
||||
"UPDATE": "true",
|
||||
"NAME": "guacamoletomcat",
|
||||
"ROLES": "backend-www",
|
||||
@@ -143,7 +143,7 @@
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"EXTRA": "null",
|
||||
"EXTRA": "--restart always",
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/guacamole/guacamole.json"
|
||||
],
|
||||
|
File diff suppressed because one or more lines are too long
@@ -61,7 +61,7 @@
|
||||
"TZ": "#TZ"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
|
@@ -1,14 +1,18 @@
|
||||
{
|
||||
"name": "homeassistant",
|
||||
"name": "Homeassistant",
|
||||
"subtitle": "Smart Home",
|
||||
"title": "Home Assistant",
|
||||
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUwIDQ2Ljc5MTZDNTAgNDguNTU2MiA0OC41OTM3IDUwIDQ2Ljg3NSA1MEgzLjEyNUMxLjQwNjI1IDUwIDAgNDguNTU2MiAwIDQ2Ljc5MTZWMjcuNTQxM0MwIDI1Ljc3NjYgMC45OTM3NSAyMy4zMTI4IDIuMjEwNDIgMjIuMDYzN0wyMi43ODk2IDAuOTM1MjQ2QzI0LjAwNDIgLTAuMzExNzQ5IDI1Ljk5MzggLTAuMzExNzQ5IDI3LjIwODMgMC45MzUyNDZMNDcuNzg5NiAyMi4wNjU2QzQ5LjAwNDIgMjMuMzEyNiA1MCAyNS43Nzg4IDUwIDI3LjU0MzRWNDYuNzkzOFY0Ni43OTE2WiIgZmlsbD0iI0YyRjRGOSIvPgo8cGF0aCBkPSJNNDcuNzg5NiAyMi4wNjI3TDI3LjIxMDQgMC45MzUyMDZDMjUuOTk1OCAtMC4zMTE3MzUgMjQuMDA2MiAtMC4zMTE3MzUgMjIuNzkxNyAwLjkzNTIwNkwyLjIxMDQyIDIyLjA2MjdDMC45OTU4MzMgMjMuMzA5NyAwIDI1Ljc3NTUgMCAyNy41NDAxVjQ2Ljc4OTZDMCA0OC41NTQxIDEuNDA2MjUgNDkuOTk3OSAzLjEyNSA0OS45OTc5SDIyLjM0NzlMMTMuODgzMyA0MS4zMDc4QzEzLjQ0NzkgNDEuNDYxOCAxMi45ODMzIDQxLjU0OTUgMTIuNSA0MS41NDk1QzEwLjE0NTggNDEuNTQ5NSA4LjIyOTE3IDM5LjU4MTcgOC4yMjkxNyAzNy4xNjQ4QzguMjI5MTcgMzQuNzQ4IDEwLjE0NTggMzIuNzgwMiAxMi41IDMyLjc4MDJDMTQuODU0MiAzMi43ODAyIDE2Ljc3MDggMzQuNzQ4IDE2Ljc3MDggMzcuMTY0OEMxNi43NzA4IDM3LjY2MzIgMTYuNjg1NCAzOC4xNDAyIDE2LjUzNTQgMzguNTg3MkwyMy4xMjUgNDUuMzUyM1YyMC41Njc1QzIxLjcwODMgMTkuODUzMSAyMC43MjkyIDE4LjM2MDIgMjAuNzI5MiAxNi42MzQyQzIwLjcyOTIgMTQuMjE3MyAyMi42NDU4IDEyLjI0OTUgMjUgMTIuMjQ5NUMyNy4zNTQyIDEyLjI0OTUgMjkuMjcwOCAxNC4yMTczIDI5LjI3MDggMTYuNjM0MkMyOS4yNzA4IDE4LjM2MDIgMjguMjkxNyAxOS44NTMxIDI2Ljg3NSAyMC41Njc1VjM3Ljk0OThMMzMuNDI5MiAzMS4yMjFDMzMuMyAzMC44MDE4IDMzLjIyOTIgMzAuMzU2OSAzMy4yMjkyIDI5Ljg5NDlDMzMuMjI5MiAyNy40NzgxIDM1LjE0NTggMjUuNTEwMyAzNy41IDI1LjUxMDNDMzkuODU0MiAyNS41MTAzIDQxLjc3MDggMjcuNDc4MSA0MS43NzA4IDI5Ljg5NDlDNDEuNzcwOCAzMi4zMTE4IDM5Ljg1NDIgMzQuMjc5NiAzNy41IDM0LjI3OTZDMzYuOTc5MiAzNC4yNzk2IDM2LjQ4MzMgMzQuMTc5IDM2LjAyMjkgMzQuMDAzNkwyNi44NzUgNDMuMzk1M1Y1MEg0Ni44NzVDNDguNTkzNyA1MCA1MCA0OC41NTYzIDUwIDQ2Ljc5MTdWMjcuNTQyMkM1MCAyNS43Nzc3IDQ5LjAwNjMgMjMuMzEzNyA0Ny43ODk2IDIyLjA2NDdWMjIuMDYyN1oiIGZpbGw9IiMxOEJDRjIiLz4KPC9zdmc+Cg==",
|
||||
"description": "Home Assistant is free and open-source home automation software that acts as a central hub for managing and controlling smart home devices. It allows users to connect, automate, and customize their smart home setup, offering local control and privacy features. ",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Please add your homeassistant domain: (required)",
|
||||
"description": "Domain",
|
||||
"key": "DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add your homeassistant timezone: (required)",
|
||||
"description": "Timezone",
|
||||
"key": "TZ",
|
||||
"value": "Europe/Budapest",
|
||||
"required": "true"
|
||||
|
60
immich/domain-immich.json
Normal file
60
immich/domain-immich.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "immich",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "immichapp"
|
||||
},
|
||||
{
|
||||
"PORT": "2283"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
75
immich/firewall-immich.json
Normal file
75
immich/firewall-immich.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "smarthostbackend"
|
||||
},
|
||||
{
|
||||
"TARGET": "immichapp"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "2283"
|
||||
},
|
||||
{
|
||||
"COMMENT": "proxy for immich"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
12
immich/immich-secret.json
Normal file
12
immich/immich-secret.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"immichpostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DATABASE_NAME",
|
||||
"POSTGRES_USER": "#POSTGRES_USERNAME",
|
||||
"POSTGRES_PASSWORD": "#POSTGRESDB_PASSWORD"
|
||||
},
|
||||
"immichapp": {
|
||||
"DB_DATABASE_NAME": "#POSTGRES_DATABASE_NAME",
|
||||
"DB_USERNAME": "#POSTGRES_USERNAME",
|
||||
"DB_PASSWORD": "#POSTGRESDB_PASSWORD"
|
||||
}
|
||||
}
|
166
immich/service-immich.json
Normal file
166
immich/service-immich.json
Normal file
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "immich",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "immich-init",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/immich/db && mkdir -p /etc/user/data/immich/upload",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "tensorchord/pgvecto-rs:pg14-v0.2.0",
|
||||
"UPDATE": "true",
|
||||
"NAME": "immichpostgres-db",
|
||||
"MEMORY": "768M",
|
||||
"NETWORK": "immich-net",
|
||||
"SELECTOR": "immichpostgres",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/immich/db",
|
||||
"DEST": "/var/lib/postgres",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/immich/immich.json"
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"POSTGRES_INITDB_ARGS": "--data-checksums"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "valkey/valkey:8-bookworm",
|
||||
"UPDATE": "true",
|
||||
"NAME": "immichredis-app",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "immich-net",
|
||||
"SELECTOR": "immichredis",
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "6379",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "ghcr.io/immich-app/immich-server:#IMMICH_VERSION",
|
||||
"UPDATE": "true",
|
||||
"NAME": "immichapp-app",
|
||||
"MEMORY": "1536M",
|
||||
"NETWORK": "immich-net",
|
||||
"SELECTOR": "immichapp",
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "2283",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/immich/upload",
|
||||
"DEST": "/usr/src/app/upload",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"DB_HOSTNAME": "immichpostgres-db"
|
||||
},
|
||||
{
|
||||
"REDIS_HOSTNAME": "immichredis-app"
|
||||
},
|
||||
{
|
||||
"UPLOAD_LOCATION": "/etc/user/data/immich/uploads"
|
||||
},
|
||||
{
|
||||
"IMMICH_MACHINE_LEARNING_URL": "immichmachine-learning"
|
||||
},
|
||||
{
|
||||
"TZ": "#IMMICH_TZ"
|
||||
},
|
||||
{
|
||||
"IMMICH_VERSION": "#IMMICH_VERSION"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/immich/immich.json"
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": [
|
||||
"firewall-immich",
|
||||
"domain-immich"
|
||||
]
|
||||
},
|
||||
{
|
||||
"IMAGE": "ghcr.io/immich-app/immich-machine-learning:#IMMICH_VERSION",
|
||||
"UPDATE": "true",
|
||||
"NAME": "immichmachine-learning",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "1536M",
|
||||
"NETWORK": "immich-net",
|
||||
"SELECTOR": "immichmachine-learning",
|
||||
"ENVS": [
|
||||
{
|
||||
"REDIS_HOSTNAME": "immichredis-app"
|
||||
},
|
||||
{
|
||||
"TZ": "#IMMICH_TZ"
|
||||
},
|
||||
{
|
||||
"IMMICH_VERSION": "#IMMICH_VERSION"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": []
|
||||
}
|
||||
]
|
||||
}
|
56
immich/template.json
Normal file
56
immich/template.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"name": "Immich",
|
||||
"title": "Immich",
|
||||
"subtitle": "Photos and Videos",
|
||||
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQ1LjMwNjkgMzIuNTE3N0M1MC41NDQ1IDM3LjE4IDU0Ljc2NTUgNDIuMTc2MyA1Ny40ODIgNDYuODg0OUM2Mi4xNDc2IDM4LjQ5NTIgNjUuMjY1MiAyOC41MjU4IDY1LjMwNDUgMjIuMTc2MkM2NS4zMDQ1IDIyLjEzMTMgNjUuMzA0NSAyMi4wOTAzIDY1LjMwNDUgMjIuMDUyMkM2NS4zMDQ1IDEyLjY1NjYgNTUuOTgyOCA5IDQ3Ljk1MjggOUMzOS45MjI5IDkgMzAuNjAxMSAxMi42NTY2IDMwLjYwMTEgMjIuMDUyMkMzMC42MDExIDIyLjE4MDMgMzAuNjAxMSAyMi4zNTIxIDMwLjYwMTEgMjIuNTU5MkMzNS4wNzcgMjQuNTU5OSA0MC4zODIzIDI4LjEzNDYgNDUuMzA2OSAzMi41MTc3WiIgZmlsbD0iI0ZBMjkyMSIvPgo8cGF0aCBkPSJNMTYuNzM0NSA1OC4xMzk2QzIwLjAwOCA1NC40Nzc1IDI1LjAzMDIgNTAuNTA4OCAzMC42OTc1IDQ3LjE1MzVDMzYuNzI2OCA0My41ODU1IDQyLjc1NzQgNDEuMDkyOCA0OC4wNTA1IDM5Ljk1MjFDNDEuNTU2NCAzMi44OTc5IDMzLjA5IDI2LjgzNTkgMjcuMDk0NiAyNC44MzY2QzI3LjA1MjYgMjQuODIzIDI3LjAxMzMgMjQuODEwNyAyNi45NzggMjQuNzk4NUMxOC4wOSAyMS44OTU2IDExLjc1MDMgMjkuNjc4OCA5LjI2OTgxIDM3LjM1NzJDNi43ODkzIDQ1LjAzNTYgNy4zNjY3MSA1NS4wNzk5IDE2LjI1NDcgNTcuOTgyOEMxNi4zNzUzIDU4LjAyMjMgMTYuNTM4IDU4LjA3NTUgMTYuNzM0NSA1OC4xMzk2WiIgZmlsbD0iI0VENzlCNSIvPgo8cGF0aCBkPSJNODYuNzMgMzcuMjI3M0M4NC4yNDk1IDI5LjU0ODkgNzcuOTA5OCAyMS43NjU3IDY5LjAyMTggMjQuNjY4NkM2OC44OTk4IDI0LjcwODEgNjguNzM3MiAyNC43NjEyIDY4LjU0MiAyNC44MjUzQzY4LjAzMzcgMjkuNzIyIDY2LjI5MTkgMzUuOTAxMyA2My42Njc1IDQxLjk2NDZDNjAuODc2NiA0OC40MTM3IDU3LjQ1NCA1My45OTQ3IDUzLjgzODkgNTguMDQ2NEM2My4yMTYyIDU5LjkxNjIgNzMuNjEwMiA1OS44MTU0IDc5LjYyODYgNTcuODkxQzc5LjY3MDYgNTcuODc3NSA3OS43MDk5IDU3Ljg2MzggNzkuNzQ1MSA1Ny44NTI5Qzg4LjYzMzEgNTQuOTQ4NiA4OS4yMTA2IDQ0LjkwNDQgODYuNzMgMzcuMjI3M1oiIGZpbGw9IiNGRkI0MDAiLz4KPHBhdGggZD0iTTQwLjAyODEgNjUuNjQ1N0MzOC41MTY3IDU4Ljc3ODIgMzguMDIxOSA1Mi4yNDA1IDM4LjU3NzcgNDYuODI3MUMyOS44OTg0IDUwLjg1NzIgMjEuNTQ4NiA1Ny4wOCAxNy44MDM0IDYyLjE5NDhDMTcuNzc3NSA2Mi4yMzAyIDE3Ljc1MzIgNjIuMjY0NCAxNy43MzE1IDYyLjI5NDNDMTIuMjM5IDY5Ljg5NjQgMTcuNjQyMSA3OC4zNjM5IDI0LjEzODkgODMuMTA4QzMwLjYzNDQgODcuODUzNCA0MC4zMTQxIDkwLjQwNDcgNDUuODA3OSA4Mi44MDI3QzQ1Ljg4MzggODIuNjk5MSA0NS45ODQxIDgyLjU2MDEgNDYuMTA0NyA4Mi4zOTI1QzQzLjY1MjYgNzguMTMwOCA0MS40NDg3IDcyLjEwMTUgNDAuMDI4MSA2NS42NDU3WiIgZmlsbD0iIzFFODNGNyIvPgo8cGF0aCBkPSJNNzguMTIyOSA2MS44MDQ5QzczLjMzMzkgNjIuODMyNSA2Ni45NTA4IDYzLjA3NjUgNjAuNDAzOCA2Mi40NEM1My40NDA2IDYxLjc2NDEgNDcuMTA1IDYwLjIxNTggNDIuMTU0OCA1OC4wMTA3QzQzLjI4MzkgNjcuNTU0OCA0Ni41OTEzIDc3LjQ2MjkgNTAuMjcxNSA4Mi42MjRDNTAuMjk3MiA4Mi42NTk1IDUwLjMyMTcgODIuNjkzNiA1MC4zNDM0IDgyLjcyMzVDNTUuODM1NyA5MC4zMjU2IDY1LjUxNTQgODcuNzc0MyA3Mi4wMTIyIDgzLjAyODhDNzguNTA3OSA3OC4yODM0IDgzLjkxMjIgNjkuODE1OSA3OC40MTk3IDYyLjIxNTJDNzguMzQzOCA2Mi4xMTE1IDc4LjI0MzUgNjEuOTcyNSA3OC4xMjI5IDYxLjgwNDlaIiBmaWxsPSIjMThDMjQ5Ii8+Cjwvc3ZnPgo=",
|
||||
"description":"Immich is a free, open-source, self-hosted photo and video management platform designed as an alternative to Google Photos. It allows users to back up, organize, and manage their photos and videos on their own server, prioritizing privacy and control over their data.",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Domain",
|
||||
"key": "DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Timezone",
|
||||
"key": "IMMICH_TZ",
|
||||
"value": "Europe/Budapest",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Version",
|
||||
"key": "IMMICH_VERSION",
|
||||
"value": "release",
|
||||
"required": "true",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "POSTGRES database name",
|
||||
"key": "POSTGRES_DATABASE_NAME",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|md5|8"
|
||||
},
|
||||
{
|
||||
"description": "POSTGRES username",
|
||||
"key": "POSTGRES_USERNAME",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|md5|8"
|
||||
},
|
||||
{
|
||||
"description": "POSTGRES password for user",
|
||||
"key": "POSTGRESDB_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|md5|12"
|
||||
},
|
||||
{
|
||||
"description": "POSTGRES root user password",
|
||||
"key": "POSTGRESDB_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|sha256|20"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "jellyfin",
|
||||
"DOMAIN": "#JELLYFIN_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"PORT": "8096"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#JELLYFIN_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "filebrowser",
|
||||
"DOMAIN": "#JELLYFIN_DOMAIN"
|
||||
"SERVICE_NAME": "jellyfin",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "jellyfin/jellyfin:latest",
|
||||
"IMAGE": "jellyfin/jellyfin:#VERSION",
|
||||
"UPDATE": "true",
|
||||
"NAME": "jellyfin",
|
||||
"NETWORK": "host",
|
||||
@@ -62,7 +62,7 @@
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"PRE_START": "null",
|
||||
|
@@ -1,10 +1,21 @@
|
||||
{
|
||||
"name": "jellyfin",
|
||||
"name": "Jellyfin",
|
||||
"title": "Jellyfin",
|
||||
"subtitle": "Media System",
|
||||
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjYiIGhlaWdodD0iNjYiIHZpZXdCb3g9IjAgMCA2NiA2NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMzIDI1LjI4NzZDMzAuMTAxNCAyNS4yODc2IDIwLjc3MTcgNDIuMjA0MiAyMi4xOTQgNDUuMDYwMkMyMy42MTY0IDQ3LjkxNjMgNDIuMzk5MiA0Ny44ODUxIDQzLjgwNTkgNDUuMDYwMkM0NS4yMTI3IDQyLjIzNTQgMzUuOTAyOCAyNS4yODkgMzMgMjUuMjg3NloiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yMl85OCkiLz4KPHBhdGggZD0iTTMzIDBDMjQuMjcwMSAwIC0zLjg0NTIzIDUwLjk3MSAwLjQ0MTcwNiA1OS41Nzg5QzQuNzI4NjQgNjguMTg2OCA2MS4zMjY2IDY4LjA4NzUgNjUuNTY2OCA1OS41Nzg5QzY5LjgwNjkgNTEuMDcwMiA0MS43MzgzIDAgMzMgMFpNNTQuMzQzOSA1Mi4xMDk3QzUxLjU2NTggNTcuNjg3MSAxNC40ODM4IDU3Ljc0OTUgMTEuNjc0NSA1Mi4xMDk3QzguODY1MjUgNDYuNDY5OSAyNy4yODY0IDEzLjA3MjEgMzMuMDA4NSAxMy4wNzIxQzM4LjczMDUgMTMuMDcyMSA1Ny4xMjIgNDYuNTMwOSA1NC4zNDM5IDUyLjEwOTdaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMjJfOTgpIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjJfOTgiIHgxPSIxMi4zMzExIiB5MT0iMjYuOTQzOSIgeDI9IjY3LjA1NDQiIHkyPSI1OC41Mzc5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQTVDQzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDBBNERDIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8yMl85OCIgeDE9IjEyLjMzMTEiIHkxPSIyNi45NDQiIHgyPSI2Ny4wNTQ0IiB5Mj0iNTguNTM4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQTVDQzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDBBNERDIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==",
|
||||
"description": "Jellyfin is a free and open-source media server and suite of applications that allows users to manage, organize, and stream their personal media collections. It is built by volunteers and emphasizes user control, privacy, and a lack of tracking or hidden agendas.",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Please add your Jellyfin domain:",
|
||||
"key": "JELLYFIN_DOMAIN",
|
||||
"description": "Domain",
|
||||
"key": "DOMAIN",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"description": "Version",
|
||||
"key": "VERSION",
|
||||
"value": "2025081105",
|
||||
"info": "Latest stable official version at the time of template creation.",
|
||||
"advanced": "true"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "leantime",
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -26,13 +26,10 @@
|
||||
"TARGET": "leantime-app"
|
||||
},
|
||||
{
|
||||
"PORT": "80"
|
||||
"PORT": "8080"
|
||||
},
|
||||
{
|
||||
"LOCATION": "#LEANTIME_LOCATION_PATH"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -58,7 +58,7 @@
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "80"
|
||||
"TARGET_PORT": "8080"
|
||||
},
|
||||
{
|
||||
"COMMENT": "leantime"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "leantime",
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -115,7 +115,7 @@
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "80",
|
||||
"DEST": "8080",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
@@ -150,7 +150,7 @@
|
||||
"LEAN_PORT": "80"
|
||||
},
|
||||
{
|
||||
"LEAN_APP_URL": "https://#LEANTIME_DOMAIN"
|
||||
"LEAN_APP_URL": "https://#DOMAIN"
|
||||
},
|
||||
{
|
||||
"LEAN_APP_DIR": "leantime/"
|
||||
@@ -285,7 +285,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/leantime/leantime.json"
|
||||
],
|
||||
"EXTRA": "",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "leantime",
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
"SERVICE_NAME": "matrix",
|
||||
"DOMAIN": "#ADMINDOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -23,20 +23,20 @@
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "leantime-app"
|
||||
"TARGET": "matrixadmin"
|
||||
},
|
||||
{
|
||||
"PORT": "80"
|
||||
},
|
||||
{
|
||||
"LOCATION": "#LEANTIME_LOCATION_PATH"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#LEANTIME_DOMAIN"
|
||||
"DOMAIN": "#ADMINDOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"LOCATION": "#SUBPATH"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
60
matrix/domain-matrix.json
Normal file
60
matrix/domain-matrix.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "matrix",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "matrixserver"
|
||||
},
|
||||
{
|
||||
"PORT": "8008"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@@ -52,7 +52,7 @@
|
||||
"SOURCE": "smarthostbackend"
|
||||
},
|
||||
{
|
||||
"TARGET": "leantime-app"
|
||||
"TARGET": "matrixadmin"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
@@ -61,7 +61,7 @@
|
||||
"TARGET_PORT": "80"
|
||||
},
|
||||
{
|
||||
"COMMENT": "leantime"
|
||||
"COMMENT": "matrixadmin for proxy"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
@@ -50,7 +50,7 @@
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "leantimeapp"
|
||||
"SOURCE": "matrixserver"
|
||||
},
|
||||
{
|
||||
"TARGET": "coredns"
|
||||
@@ -62,7 +62,7 @@
|
||||
"TARGET_PORT": "53"
|
||||
},
|
||||
{
|
||||
"COMMENT": "leantime nginx access for local dns"
|
||||
"COMMENT": "matrix nginx access for local dns"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
75
matrix/firewall-matrix-smtp.json
Normal file
75
matrix/firewall-matrix-smtp.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "matrixserver"
|
||||
},
|
||||
{
|
||||
"TARGET": "smtp"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "25"
|
||||
},
|
||||
{
|
||||
"COMMENT": "matrix to smtp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
75
matrix/firewall-matrix.json
Normal file
75
matrix/firewall-matrix.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "smarthostbackend"
|
||||
},
|
||||
{
|
||||
"TARGET": "matrixserver"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "8008"
|
||||
},
|
||||
{
|
||||
"COMMENT": "matrix"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
29
matrix/matrix-secret.json
Normal file
29
matrix/matrix-secret.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"matrixpostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
|
||||
},
|
||||
"matrixserver": {
|
||||
"DB_TYPE": "psycopg2",
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_HOST": "matrixpostgres-db",
|
||||
"DB_PORT": "5432",
|
||||
"SYNAPSE_SERVER_NAME": "#DOMAIN",
|
||||
"SYNAPSE_REPORT_STATS": "no",
|
||||
"ADMIN_USERNAME": "#ADMIN_USERNAME",
|
||||
"ADMIN_PASSWORD": "#ADMIN_PASSWORD",
|
||||
"SYNAPSE_CONFIG_DIR": "/data",
|
||||
"SYNAPSE_CONFIG_PATH": "/data/homeserver.yaml",
|
||||
"SYNAPSE_DATA_DIR": "/data"
|
||||
},
|
||||
"matrixadmin": {
|
||||
"REACT_APP_SERVER": "https://#DOMAIN",
|
||||
"BASE_PATH": "#ADMINDOMAIN",
|
||||
"ADMINDOMAIN": "#ADMINDOMAIN",
|
||||
"SUBPATH": "#SUBPATH"
|
||||
}
|
||||
}
|
199
matrix/service-matrix.json
Normal file
199
matrix/service-matrix.json
Normal file
@@ -0,0 +1,199 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "matrix",
|
||||
"DOMAIN": "DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrix-init",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/matrix/db && mkdir -p /etc/user/data/matrix/synapse",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "postgres:alpine",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixpostgres-db",
|
||||
"ROLES": "postgres-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "matrix-net",
|
||||
"SELECTOR": "matrixpostgres-db",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/matrix/db",
|
||||
"DEST": "/var/lib/postgresql/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"POSTGRES_INITDB_ARGS": "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [],
|
||||
"POST_START": []
|
||||
},
|
||||
{
|
||||
"IMAGE": "matrixdotorg/synapse",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixserver-init",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "512M",
|
||||
"NETWORK": "matrix-net",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/matrix/synapse",
|
||||
"DEST": "/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "bash -c",
|
||||
"CMD": "if [ ! -f /data/homeserver.yaml ]; then /start.py generate ; else exit 1; fi",
|
||||
"PRE_START": [],
|
||||
"POST_START": []
|
||||
},
|
||||
{
|
||||
"IMAGE": "safebox/matrix-setup:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixserver-dbinit",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/matrix/synapse",
|
||||
"DEST": "/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "matrixdotorg/synapse",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixserver-app",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "512M",
|
||||
"NETWORK": "matrix-net",
|
||||
"SELECTOR": "matrixserver",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/matrix/synapse",
|
||||
"DEST": "/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [],
|
||||
"POST_START": [
|
||||
"firewall-matrix",
|
||||
"domain-matrix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"IMAGE": "safebox/matrix-setup:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixserver-finalize",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/matrix/synapse",
|
||||
"DEST": "/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SHARED",
|
||||
"DEST": "/var/tmp/shared",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/matrix/matrix.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "awesometechnologies/synapse-admin",
|
||||
"UPDATE": "true",
|
||||
"NAME": "matrixadmin",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "128M",
|
||||
"NETWORK": "matrix-net",
|
||||
"SELECTOR": "matrixadmin",
|
||||
"VOLUMES": [],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "80",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [],
|
||||
"POST_START": [
|
||||
"firewall-matrix-admin",
|
||||
"domain-matrix-admin"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
69
matrix/template.json
Normal file
69
matrix/template.json
Normal file
File diff suppressed because one or more lines are too long
@@ -1,49 +1,60 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "nextcloud",
|
||||
"DOMAIN": "#NEXTCLOUD_TRUSTED_DOMAINS"
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "nextcloud",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{ "PROXY": "smarthostloadbalancer" },
|
||||
{ "TARGET": "nextcloudnginx" },
|
||||
{ "PORT": "80" },
|
||||
{ "LOCATION": "#NEXTCLOUD_LOCATION_PATH" },
|
||||
{ "DOMAIN": "#NEXTCLOUD_TRUSTED_DOMAINS" },
|
||||
{ "SMARTHOST_PROXY_PATH": "/smarthost-domains" },
|
||||
{ "OPERATION": "CREATE" }
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "nextcloudnginx"
|
||||
},
|
||||
{
|
||||
"PORT": "80"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,21 +1,20 @@
|
||||
{
|
||||
"nextcloudmysql": {
|
||||
"MARIADB_DATABASE": "#MARIADB_DATABASE",
|
||||
"MARIADB_USER": "#MARIADB_USER",
|
||||
"MARIADB_PASSWORD": "#MARIADB_PASSWORD",
|
||||
"MARIADB_ROOT_PASSWORD": "#MARIADB_ROOT_PASSWORD"
|
||||
},
|
||||
"nextcloudphp": {
|
||||
"NEXTCLOUD_ADMIN_USER": "#NEXTCLOUD_ADMIN_USER",
|
||||
"NEXTCLOUD_ADMIN_PASSWORD": "#NEXTCLOUD_ADMIN_PASSWORD",
|
||||
"NEXTCLOUD_TRUSTED_DOMAINS": "#NEXTCLOUD_TRUSTED_DOMAINS",
|
||||
"NEXTCLOUD_LOCATION_PATH": "#NEXTCLOUD_LOCATION_PATH",
|
||||
"OVERWRITEHOST": "#NEXTCLOUD_TRUSTED_DOMAINS#NEXTCLOUD_LOCATION_PATH",
|
||||
"NEXTCLOUD_DATA_DIR": "/var/data",
|
||||
"MYSQL_DATABASE": "#MARIADB_DATABASE",
|
||||
"MYSQL_USER": "#MARIADB_USER",
|
||||
"MYSQL_PASSWORD": "#MARIADB_PASSWORD",
|
||||
"MYSQL_HOST": "nextcloudmysql-db",
|
||||
"REDIS_HOST": "nextcloud-redis"
|
||||
}
|
||||
}
|
||||
"nextcloudpostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
|
||||
},
|
||||
"nextcloudphp": {
|
||||
"NEXTCLOUD_ADMIN_USER": "#NEXTCLOUD_ADMIN_USER",
|
||||
"NEXTCLOUD_ADMIN_PASSWORD": "#NEXTCLOUD_ADMIN_PASSWORD",
|
||||
"DOMAIN": "#DOMAIN",
|
||||
"OVERWRITEHOST": "#DOMAIN",
|
||||
"NEXTCLOUD_DATA_DIR": "/var/data",
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_HOST": "nextcloudpostgres-db",
|
||||
"REDIS_HOST": "nextcloud-redis"
|
||||
}
|
||||
}
|
@@ -1,203 +1,227 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "nextcloud",
|
||||
"DOMAIN": "DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloud",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SYSTEM_DATA",
|
||||
"DEST": "/etc/system/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SYSTEM_LOG",
|
||||
"DEST": "/etc/system/log",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [ "/etc/user/secret/nextcloud/nextcloud.json" ],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/nextcloud/db && mkdir -p /etc/system/log/nextcloud/db && mkdir -p /etc/user/data/nextcloud/apps && mkdir -p /etc/user/data/nextcloud/config && mkdir -p /etc/user/data/nextcloud/data && chmod 777 -R /etc/user/data/nextcloud && chmod 0770 -R /etc/user/data/nextcloud/data && chown -R 82:82 /etc/user/data/nextcloud/data",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
"main": {
|
||||
"SERVICE_NAME": "nextcloud",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloud",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"IMAGE": "mariadb:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudmysql-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudmysql",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/db",
|
||||
"DEST": "/var/lib/mysql",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/log/nextcloud/db",
|
||||
"DEST": "/var/lib/mysql/mysql-bin",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "3306",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{"tcp": "3306"},
|
||||
{"HTTP": ""},
|
||||
{"EXEC": "/ready.sh"}
|
||||
],
|
||||
"ENV_FILES": [ "/etc/user/secret/nextcloud/nextcloud.json" ],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
{
|
||||
"SOURCE": "SYSTEM_DATA",
|
||||
"DEST": "/etc/system/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"IMAGE": "redis:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloud-redis",
|
||||
"MEMORY": "128M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudredis",
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "6379",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{"tcp": ""},
|
||||
{"HTTP": ""},
|
||||
{"EXEC": "/ready.sh"}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "registry.format.hu/nextcloud-php-fpm:26",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudphp-fpm",
|
||||
"MEMORY": "1024M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudphp-fpm",
|
||||
"DNS": [ "coredns" ],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "nextcloud",
|
||||
"DEST": "/var/www/html",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/config",
|
||||
"DEST": "/var/www/html/config",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/apps",
|
||||
"DEST": "/var/www/html/custom_apps",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/data",
|
||||
"DEST": "/var/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "9000",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{"tcp": ""},
|
||||
{"HTTP": ""},
|
||||
{"EXEC": "/ready.sh"}
|
||||
],
|
||||
"ENV_FILES": [ "/etc/user/secret/nextcloud/nextcloud.json" ],
|
||||
"EXTRA": "--user www-data --restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [ "firewall-nextcloud-server-dns" ],
|
||||
"POST_START": ["firewall-nextcloud-server-smtp"]
|
||||
},
|
||||
{
|
||||
"IMAGE": "registry.format.hu/nextcloud-nginx:1.23.1",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudnginx",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "128M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudnginx",
|
||||
"DNS": [ "coredns" ],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "nextcloud",
|
||||
"DEST": "/var/www/html",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/config",
|
||||
"DEST": "/var/www/html/config",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/apps",
|
||||
"DEST": "/var/www/html/custom_apps",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "80",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{"tcp": ""},
|
||||
{"HTTP": ""},
|
||||
{"EXEC": "/ready.sh"}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [ "firewall-nextcloud-dns" ],
|
||||
"POST_START": [
|
||||
"firewall-nextcloud",
|
||||
"domain-nextcloud"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"SOURCE": "SYSTEM_LOG",
|
||||
"DEST": "/etc/system/log",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/nextcloud/nextcloud.json"
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/nextcloud/db && mkdir -p /etc/user/data/nextcloud/apps && mkdir -p /etc/user/data/nextcloud/config && mkdir -p /etc/user/data/nextcloud/data && chmod 777 -R /etc/user/data/nextcloud && chmod 0770 -R /etc/user/data/nextcloud/data && chown -R 82:82 /etc/user/data/nextcloud/data && chown -R 82:82 /etc/user/data/nextcloud/apps && chown -R 82:82 /etc/user/data/nextcloud/config",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "postgres:15-alpine",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudpostgres-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudpostgres",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/db",
|
||||
"DEST": "/var/lib/postgres",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/nextcloud/nextcloud.json"
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "redis:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloud-redis",
|
||||
"MEMORY": "128M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudredis",
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "6379",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "nextcloud:#VERSION",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudphp-fpm",
|
||||
"MEMORY": "1024M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudphp-fpm",
|
||||
"DNS": [
|
||||
"coredns"
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "nextcloud",
|
||||
"DEST": "/var/www/html",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/config",
|
||||
"DEST": "/var/www/html/config",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/apps",
|
||||
"DEST": "/var/www/html/custom_apps",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/data",
|
||||
"DEST": "/var/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "9000",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/nextcloud/nextcloud.json"
|
||||
],
|
||||
"EXTRA": "--user www-data --restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [
|
||||
"firewall-nextcloud-server-dns"
|
||||
],
|
||||
"POST_START": [
|
||||
"firewall-nextcloud-server-smtp"
|
||||
]
|
||||
},
|
||||
{
|
||||
"IMAGE": "safebox/nextcloud-nginx:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "nextcloudnginx",
|
||||
"ROLES": "backend-www",
|
||||
"MEMORY": "128M",
|
||||
"NETWORK": "nextcloud-net",
|
||||
"SELECTOR": "nextcloudnginx",
|
||||
"DNS": [
|
||||
"coredns"
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "nextcloud",
|
||||
"DEST": "/var/www/html",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/config",
|
||||
"DEST": "/var/www/html/config",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/data/nextcloud/apps",
|
||||
"DEST": "/var/www/html/custom_apps",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "80",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [
|
||||
"firewall-nextcloud-dns"
|
||||
],
|
||||
"POST_START": [
|
||||
"firewall-nextcloud",
|
||||
"domain-nextcloud"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "outline",
|
||||
"DOMAIN": "#OUTLINE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"PORT": "3000"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#OUTLINE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
170
outline/env
170
outline/env
@@ -1,170 +0,0 @@
|
||||
NODE_ENV=production
|
||||
|
||||
# Generate a hex-encoded 32-byte random key. You should use `openssl rand -hex 32`
|
||||
# in your terminal to generate a random value.
|
||||
SECRET_KEY=generate_a_new_key
|
||||
|
||||
# Generate a unique random key. The format is not important but you could still use
|
||||
# `openssl rand -hex 32` in your terminal to produce this.
|
||||
UTILS_SECRET=generate_a_new_key
|
||||
|
||||
# For production point these at your databases, in development the default
|
||||
# should work out of the box.
|
||||
DATABASE_URL=postgres://user:pass@localhost:5432/outline
|
||||
DATABASE_CONNECTION_POOL_MIN=
|
||||
DATABASE_CONNECTION_POOL_MAX=
|
||||
# Uncomment this to disable SSL for connecting to Postgres
|
||||
# PGSSLMODE=disable
|
||||
|
||||
# For redis you can either specify an ioredis compatible url like this
|
||||
REDIS_URL=redis://localhost:6379
|
||||
# or alternatively, if you would like to provide additional connection options,
|
||||
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation
|
||||
# for a list of available options.
|
||||
# Example: Use Redis Sentinel for high availability
|
||||
# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
|
||||
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJzZW50aW5lbC0wIiwicG9ydCI6MjYzNzl9LHsiaG9zdCI6InNlbnRpbmVsLTEiLCJwb3J0IjoyNjM3OX1dLCJuYW1lIjoibXltYXN0ZXIifQ==
|
||||
|
||||
# URL should point to the fully qualified, publicly accessible URL. If using a
|
||||
# proxy the port in URL and PORT may be different.
|
||||
URL=
|
||||
PORT=3000
|
||||
|
||||
# See [documentation](docs/SERVICES.md) on running a separate collaboration
|
||||
# server, for normal operation this does not need to be set.
|
||||
COLLABORATION_URL=
|
||||
|
||||
# Specify what storage system to use. Possible value is one of "s3" or "local".
|
||||
# For "local", the avatar images and document attachments will be saved on local disk.
|
||||
FILE_STORAGE=local
|
||||
|
||||
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under
|
||||
# which all attachments/images go. Make sure that the process has permissions to create
|
||||
# this path and also to write files to it.
|
||||
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
|
||||
|
||||
# Maximum allowed size for the uploaded attachment.
|
||||
FILE_STORAGE_UPLOAD_MAX_SIZE=262144000
|
||||
|
||||
# Override the maximum size of document imports, generally this should be lower
|
||||
# than the document attachment maximum size.
|
||||
FILE_STORAGE_IMPORT_MAX_SIZE=
|
||||
|
||||
# Override the maximum size of workspace imports, these can be especially large
|
||||
# and the files are temporary being automatically deleted after a period of time.
|
||||
FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
|
||||
|
||||
# To support uploading of images for avatars and document attachments in a distributed
|
||||
# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above.
|
||||
AWS_ACCESS_KEY_ID=get_a_key_from_aws
|
||||
AWS_SECRET_ACCESS_KEY=get_the_secret_of_above_key
|
||||
AWS_REGION=xx-xxxx-x
|
||||
AWS_S3_ACCELERATE_URL=
|
||||
AWS_S3_UPLOAD_BUCKET_URL=http://s3:4569
|
||||
AWS_S3_UPLOAD_BUCKET_NAME=bucket_name_here
|
||||
AWS_S3_FORCE_PATH_STYLE=true
|
||||
AWS_S3_ACL=private
|
||||
|
||||
# –––––––––––––– AUTHENTICATION ––––––––––––––
|
||||
|
||||
# Third party signin credentials, at least ONE OF EITHER Google, Slack,
|
||||
# or Microsoft is required for a working installation or you'll have no sign-in
|
||||
# options.
|
||||
|
||||
# To configure Slack auth, you'll need to create an Application at
|
||||
# => https://api.slack.com/apps
|
||||
#
|
||||
# When configuring the Client ID, add a redirect URL under "OAuth & Permissions":
|
||||
# https://<URL>/auth/slack.callback
|
||||
SLACK_CLIENT_ID=get_a_key_from_slack
|
||||
SLACK_CLIENT_SECRET=get_the_secret_of_above_key
|
||||
|
||||
# To configure Google auth, you'll need to create an OAuth Client ID at
|
||||
# => https://console.cloud.google.com/apis/credentials
|
||||
#
|
||||
# When configuring the Client ID, add an Authorized redirect URI:
|
||||
# https://<URL>/auth/google.callback
|
||||
GOOGLE_CLIENT_ID=
|
||||
GOOGLE_CLIENT_SECRET=
|
||||
|
||||
# To configure Microsoft/Azure auth, you'll need to create an OAuth Client. See
|
||||
# the guide for details on setting up your Azure App:
|
||||
# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4
|
||||
AZURE_CLIENT_ID=
|
||||
AZURE_CLIENT_SECRET=
|
||||
AZURE_RESOURCE_APP_ID=
|
||||
|
||||
# To configure generic OIDC auth, you'll need some kind of identity provider.
|
||||
# See documentation for whichever IdP you use to acquire the following info:
|
||||
# Redirect URI is https://<URL>/auth/oidc.callback
|
||||
OIDC_CLIENT_ID=
|
||||
OIDC_CLIENT_SECRET=
|
||||
OIDC_AUTH_URI=
|
||||
OIDC_TOKEN_URI=
|
||||
OIDC_USERINFO_URI=
|
||||
OIDC_LOGOUT_URI=
|
||||
|
||||
# Specify which claims to derive user information from
|
||||
# Supports any valid JSON path with the JWT payload
|
||||
OIDC_USERNAME_CLAIM=preferred_username
|
||||
|
||||
# Display name for OIDC authentication
|
||||
OIDC_DISPLAY_NAME=OpenID Connect
|
||||
|
||||
# Space separated auth scopes.
|
||||
OIDC_SCOPES=openid profile email
|
||||
|
||||
# To configure the GitHub integration, you'll need to create a GitHub App at
|
||||
# => https://github.com/settings/apps
|
||||
#
|
||||
# When configuring the Client ID, add a redirect URL under "Permissions & events":
|
||||
# https://<URL>/api/github.callback
|
||||
GITHUB_CLIENT_ID=
|
||||
GITHUB_CLIENT_SECRET=
|
||||
GITHUB_APP_NAME=
|
||||
GITHUB_APP_ID=
|
||||
GITHUB_APP_PRIVATE_KEY=
|
||||
|
||||
# To configure Discord auth, you'll need to create a Discord Application at
|
||||
# => https://discord.com/developers/applications/
|
||||
#
|
||||
# When configuring the Client ID, add a redirect URL under "OAuth2":
|
||||
# https://<URL>/auth/discord.callback
|
||||
DISCORD_CLIENT_ID=
|
||||
DISCORD_CLIENT_SECRET=
|
||||
|
||||
{"SECRET_KEY": "generate_a_new_key"},
|
||||
{"UTILS_SECRET": "generate_a_new_key"},
|
||||
{"DATABASE_URL": "postgres://user:pass@localhost:5432/outline"},
|
||||
{"AWS_ACCESS_KEY_ID": "get_a_key_from_aws"},
|
||||
{"AWS_SECRET_ACCESS_KEY": "get_the_secret_of_above_key"},
|
||||
{"AWS_REGION": "xx-xxxx-x"},
|
||||
{"AWS_S3_ACCELERATE_URL": ""},
|
||||
{"AWS_S3_UPLOAD_BUCKET_URL": "http://s3:4569"},
|
||||
{"AWS_S3_UPLOAD_BUCKET_NAME": "bucket_name_here"},
|
||||
{"AWS_S3_FORCE_PATH_STYLE": true},
|
||||
{"AWS_S3_ACL": "private"},
|
||||
{"SLACK_CLIENT_ID": "get_a_key_from_slack"},
|
||||
{"SLACK_CLIENT_SECRET": "get_the_secret_of_above_key"},
|
||||
{"GOOGLE_CLIENT_ID": ""},
|
||||
{"GOOGLE_CLIENT_SECRET": ""},
|
||||
{"AZURE_CLIENT_ID": ""},
|
||||
{"AZURE_CLIENT_SECRET": ""},
|
||||
{"AZURE_RESOURCE_APP_ID": ""},
|
||||
{"OIDC_CLIENT_ID": ""},
|
||||
{"OIDC_CLIENT_SECRET": ""},
|
||||
{"OIDC_AUTH_URI": ""},
|
||||
{"OIDC_TOKEN_URI": ""},
|
||||
{"OIDC_USERINFO_URI": ""},
|
||||
{"OIDC_LOGOUT_URI": ""},
|
||||
{"OIDC_USERNAME_CLAIM": "preferred_username"},
|
||||
{"OIDC_DISPLAY_NAME": "OpenID Connect"},
|
||||
{"OIDC_SCOPES": "openid profile email"},
|
||||
{"GITHUB_CLIENT_ID": ""},
|
||||
{"GITHUB_CLIENT_SECRET": ""},
|
||||
{"GITHUB_APP_NAME": ""},
|
||||
{"GITHUB_APP_ID": ""},
|
||||
{"GITHUB_APP_PRIVATE_KEY": ""},
|
||||
{"DISCORD_CLIENT_ID": ""},
|
||||
{"DISCORD_CLIENT_SECRET": ""}
|
||||
|
@@ -7,6 +7,31 @@
|
||||
"outlineapp": {
|
||||
"SECRET_KEY": "#SECRET_KEY",
|
||||
"UTILS_SECRET": "#UTILS_SECRET",
|
||||
"DATABASE_URL": "postgres://#DB_USER:#DB_PASSWORD@outlinepostgres-db:5432/#DB_NAME"
|
||||
"DATABASE_URL": "postgres://#DB_USER:#DB_PASSWORD@outlinepostgres-db:5432/#DB_NAME",
|
||||
"SLACK_CLIENT_ID": "#SLACK_CLIENT_ID",
|
||||
"SLACK_CLIENT_SECRET": "#SLACK_CLIENT_SECRET",
|
||||
"GOOGLE_CLIENT_ID": "#GOOGLE_CLIENT_ID",
|
||||
"GOOGLE_CLIENT_SECRET": "#GOOGLE_CLIENT_SECRET",
|
||||
"AZURE_CLIENT_ID": "#AZURE_CLIENT_ID",
|
||||
"AZURE_CLIENT_SECRET": "#AZURE_CLIENT_SECRET",
|
||||
"AZURE_RESOURCE_APP_ID": "#AZURE_RESOURCE_APP_ID",
|
||||
"DISCORD_CLIENT_ID": "#DISCORD_CLIENT_ID",
|
||||
"DISCORD_CLIENT_SECRET": "#DISCORD_CLIENT_SECRET",
|
||||
"DISCORD_SERVER_ID": "#DISCORD_SERVER_ID",
|
||||
"OIDC_CLIENT_ID": "#OIDC_CLIENT_ID",
|
||||
"OIDC_CLIENT_SECRET": "#OIDC_CLIENT_SECRET",
|
||||
"OIDC_AUTH_URI": "#OIDC_AUTH_URI",
|
||||
"OIDC_TOKEN_URI": "#OIDC_TOKEN_URI",
|
||||
"OIDC_USERINFO_URI": "#OIDC_USERINFO_URI",
|
||||
"OIDC_LOGOUT_URI": "#OIDC_LOGOUT_URI",
|
||||
"OIDC_USERNAME_CLAIM": "#OIDC_USERNAME_CLAIM",
|
||||
"OIDC_DISPLAY_NAME": "#OIDC_DISPLAY_NAME",
|
||||
"OIDC_SCOPES": "#OIDC_SCOPES",
|
||||
"SMTP_HOST": "#SMTP_HOST",
|
||||
"SMTP_PORT": "#SMTP_PORT",
|
||||
"SMTP_SERVICE": "#SMTP_SERVICE",
|
||||
"SMTP_USERNAME": "#SMTP_USERNAME",
|
||||
"SMTP_PASSWORD": "#SMTP_PASSWORD",
|
||||
"SMTP_FROM_EMAIL": "#SMTP_FROM_EMAIL"
|
||||
}
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "outline",
|
||||
"DOMAIN": "#OUTLINE_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -49,7 +49,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/outline/outline.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
@@ -108,10 +108,10 @@
|
||||
"DATABASE_CONNECTION_POOL_MAX": ""
|
||||
},
|
||||
{
|
||||
"REDIS_URL": "redis://outlineredis-app:6379"
|
||||
"REDIS_URL": "redis://outlineredis-server:6379"
|
||||
},
|
||||
{
|
||||
"URL": "https://#OUTLINE_DOMAIN"
|
||||
"URL": "https://#DOMAIN"
|
||||
},
|
||||
{
|
||||
"PORT": 3000
|
||||
@@ -141,7 +141,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/outline/outline.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
|
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"name": "outline",
|
||||
"title": "Outline",
|
||||
"subtitle": "Knowledge Base",
|
||||
"description": "Outline is an open-source, self-hosted knowledge management and wiki application designed for teams to organize documentation, internal knowledge bases, onboarding guides, and notes.",
|
||||
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiByeD0iNyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTMwLjMzMzMgNDIuMjUyNlY0My4zMDQ0QzMwLjMzMzMgNDQuNzkzMSAyOS4xMzk0IDQ2IDI3LjY2NjcgNDZDMjcuMjA4NyA0NiAyNi43NTg1IDQ1Ljg4MDggMjYuMzU5MyA0NS42NTM4TDEwLjM1OTMgMzYuNTU1OUM5LjUxOTY4IDM2LjA3ODQgOSAzNS4xODAzIDkgMzQuMjA2NFYxNS43OTRDOSAxNC44MjAyIDkuNTE5NjggMTMuOTIyIDEwLjM1OTMgMTMuNDQ0NkwyNi4zNTkzIDQuMzQ2NjdDMjcuNjQyOSAzLjYxNjc3IDI5LjI2ODggNC4wNzY5OSAyOS45OTA4IDUuMzc0NTdDMzAuMjE1NCA1Ljc3ODA2IDMwLjMzMzMgNi4yMzMyMSAzMC4zMzMzIDYuNjk2MTZWNy43NDc4OEwzMi4yMzM3IDcuMTcxNTZDMzMuNjQ0NCA2Ljc0Mzc2IDM1LjEzMSA3LjU1Mjk2IDM1LjU1NDIgOC45Nzg5NEMzNS42Mjg4IDkuMjMwMjkgMzUuNjY2NyA5LjQ5MTIzIDM1LjY2NjcgOS43NTM1N1YxMC44NDc5TDM4LjAwMjYgMTAuNTUyOEMzOS40NjQgMTAuMzY4MSA0MC43OTY3IDExLjQxNiA0MC45Nzk0IDEyLjg5MzJDNDAuOTkzMiAxMy4wMDQyIDQxIDEzLjExNTggNDEgMTMuMjI3NlYzNi43NzI4QzQxIDM4LjI2MTcgMzkuODA2MSAzOS40Njg2IDM4LjMzMzMgMzkuNDY4NkMzOC4yMjI3IDM5LjQ2ODYgMzguMTEyMyAzOS40NjE2IDM4LjAwMjYgMzkuNDQ3N0wzNS42NjY3IDM5LjE1MjZWNDAuMjQ3QzM1LjY2NjcgNDEuNzM1NyAzNC40NzI3IDQyLjk0MjYgMzMgNDIuOTQyNkMzMi43NDA1IDQyLjk0MjYgMzIuNDgyMyA0Mi45MDQzIDMyLjIzMzcgNDIuODI4OUwzMC4zMzMzIDQyLjI1MjZaTTMwLjMzMzMgMzkuNDM4MkwzMyA0MC4yNDdWMjUuMDAwM1Y5Ljc1MzU3TDMwLjMzMzMgMTAuNTYyMlYzOS40MzgyWk0zNS42NjY3IDEzLjU2NDZWMzYuNDM2TDM4LjMzMzMgMzYuNzcyOFYxMy4yMjc2TDM1LjY2NjcgMTMuNTY0NlpNMTEuNjY2NyAxNS43OTRWMzQuMjA2NEwyNy42NjY3IDQzLjMwNDRWNi42OTYxNkwxMS42NjY3IDE1Ljc5NFpNMTQuMzMzMyAxNy41ODcxTDE3IDE2LjIzOTJWMzMuNzYxMkwxNC4zMzMzIDMyLjQxMzNWMTcuNTg3MVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Secret key",
|
||||
@@ -44,10 +48,178 @@
|
||||
"generated": "random|sha256|20"
|
||||
},
|
||||
{
|
||||
"description": "Please add Outline domain:",
|
||||
"key": "OUTLINE_DOMAIN",
|
||||
"description": "Domain:",
|
||||
"key": "DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Slack client ID",
|
||||
"key": "SLACK_CLIENT_ID",
|
||||
"value": "",
|
||||
"info": "Create a new app in your Slack workspace at https://api.slack.com/apps?new_app=1 and add 'Sign in with Slack' under 'Add features and functionality'. Set the Redirect URL to 'https://<your-domain>/auth/slack.callback'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Slack client secret",
|
||||
"key": "SLACK_CLIENT_SECRET",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Google client ID",
|
||||
"key": "GOOGLE_CLIENT_ID",
|
||||
"value": "",
|
||||
"info": "Create OAuth 2.0 credentials in Google Cloud Console at https://console.cloud.google.com/apis/credentials and set the Redirect URL to 'https://<your-domain>/auth/google.callback'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Google client secret",
|
||||
"key": "GOOGLE_CLIENT_SECRET",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Azure client ID",
|
||||
"key": "AZURE_CLIENT_ID",
|
||||
"value": "",
|
||||
"info": "Register an application in Azure AD at https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade and set the Redirect URL to 'https://<your-domain>/auth/azuread.callback'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Azure client secret",
|
||||
"key": "AZURE_CLIENT_SECRET",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Azure resource app ID",
|
||||
"key": "AZURE_RESOURCE_APP_ID",
|
||||
"value": "",
|
||||
"info": "This is usually the same as the client ID, but can vary based on your Azure AD setup.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Discord client ID",
|
||||
"key": "DISCORD_CLIENT_ID",
|
||||
"value": "",
|
||||
"info": "Create an application in Discord Developer Portal at https://discord.com/developers/applications and set the Redirect URL to 'https://<your-domain>/auth/discord.callback'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Discord client secret",
|
||||
"key": "DISCORD_CLIENT_SECRET",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "Discord server ID (optional)",
|
||||
"key": "DISCORD_SERVER_ID",
|
||||
"value": "",
|
||||
"info": "(Optional) If you want to restrict login to members of a specific Discord server, provide the server ID here.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect client ID",
|
||||
"key": "OIDC_CLIENT_ID",
|
||||
"value": "",
|
||||
"info": "Set up an OpenID Connect application with your provider and set the Redirect URL to 'https://<your-domain>/auth/oidc.callback'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect client secret",
|
||||
"key": "OIDC_CLIENT_SECRET",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect provider auth URI",
|
||||
"key": "OIDC_AUTH_URI",
|
||||
"value": "",
|
||||
"info": "The authorization endpoint URL of your OpenID Connect provider.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect provider token URI",
|
||||
"key": "OIDC_TOKEN_URI",
|
||||
"value": "",
|
||||
"info": "The token endpoint URL of your OpenID Connect provider.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect provider userinfo URI",
|
||||
"key": "OIDC_USERINFO_URI",
|
||||
"value": "",
|
||||
"info": "The userinfo endpoint URL of your OpenID Connect provider.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect provider logout URI (optional)",
|
||||
"key": "OIDC_LOGOUT_URI",
|
||||
"value": "",
|
||||
"info": "(Optional) The logout endpoint URL of your OpenID Connect provider, if supported.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect username claim",
|
||||
"key": "OIDC_USERNAME_CLAIM",
|
||||
"value": "preferred_username",
|
||||
"info": "The claim in the ID token or userinfo response to use as the username. Defaults to 'preferred_username'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect display name",
|
||||
"key": "OIDC_DISPLAY_NAME",
|
||||
"value": "OpenID Connect",
|
||||
"info": "The display name for the OpenID Connect authentication option. Defaults to 'OpenID Connect'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "OpenID Connect scopes",
|
||||
"key": "OIDC_SCOPES",
|
||||
"value": "openid profile email",
|
||||
"info": "Space-separated list of scopes to request during authentication. Defaults to 'openid profile email'.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "SMTP host",
|
||||
"key": "SMTP_HOST",
|
||||
"value": "",
|
||||
"info": "Used for sending invitation and password reset emails. Leave blank to disable email functionality.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "SMTP port",
|
||||
"key": "SMTP_PORT",
|
||||
"value": "587",
|
||||
"info": "(Optional) The port to connect to on the SMTP server. Defaults to 587.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "SMTP service (e.g., gmail)",
|
||||
"key": "SMTP_SERVICE",
|
||||
"value": "",
|
||||
"info": "Used for sending invitation and password reset emails. Leave blank to disable email functionality.",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "SMTP username (email address)",
|
||||
"key": "SMTP_USERNAME",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "SMTP password",
|
||||
"key": "SMTP_PASSWORD",
|
||||
"value": "",
|
||||
"advanced": "true"
|
||||
},
|
||||
{
|
||||
"description": "From email address",
|
||||
"key": "SMTP_FROM_EMAIL",
|
||||
"value": "",
|
||||
"info": "(Optional) The email address that emails will be sent from. Defaults to the SMTP username if not set.",
|
||||
"advanced": "true"
|
||||
}
|
||||
]
|
||||
}
|
60
pocketid/domain-pocketid.json
Normal file
60
pocketid/domain-pocketid.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "pocketid",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/domain-check",
|
||||
"UPDATE": "true",
|
||||
"MEMORY": "64M",
|
||||
"NAME": "domain_checker",
|
||||
"ROLES": "domain_checker",
|
||||
"NETWORK": "host",
|
||||
"SELECTOR": "",
|
||||
"SCALE": "0",
|
||||
"EXTRA": "--rm --privileged",
|
||||
"PRE_START": [],
|
||||
"DEPEND": [],
|
||||
"POST_START": [],
|
||||
"CMD": "",
|
||||
"ENVS": [
|
||||
{
|
||||
"PROXY": "smarthostloadbalancer"
|
||||
},
|
||||
{
|
||||
"TARGET": "pocketid-app"
|
||||
},
|
||||
{
|
||||
"PORT": "1411"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
},
|
||||
{
|
||||
"OPERATION": "CREATE"
|
||||
}
|
||||
],
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/config/smarthost-domains",
|
||||
"DEST": "/smarthost-domains",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
75
pocketid/firewall-pocketid-dns.json
Normal file
75
pocketid/firewall-pocketid-dns.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "coredns"
|
||||
},
|
||||
{
|
||||
"TARGET": "pocketid-app"
|
||||
},
|
||||
{
|
||||
"TYPE": "udp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "53"
|
||||
},
|
||||
{
|
||||
"COMMENT": "dns for pocketid-app"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
75
pocketid/firewall-pocketid-smtp.json
Normal file
75
pocketid/firewall-pocketid-smtp.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "pocketid-app"
|
||||
},
|
||||
{
|
||||
"TARGET": "smtp"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "25"
|
||||
},
|
||||
{
|
||||
"COMMENT": "smtp for pocketid-app"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
75
pocketid/firewall-pocketid.json
Normal file
75
pocketid/firewall-pocketid.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "firewalls",
|
||||
"DOMAIN": "null"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "safebox/firewall",
|
||||
"NAME": "firewall",
|
||||
"MEMORY": "64M",
|
||||
"NETWORK": "host",
|
||||
"SCALE": "0",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/run/",
|
||||
"DEST": "/run/",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/user/config/services",
|
||||
"DEST": "/services",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/data/dns/hosts.local",
|
||||
"DEST": "/etc/dns/hosts.local",
|
||||
"TYPE": "ro"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/var/run/docker.sock",
|
||||
"DEST": "/var/run/docker.sock",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [],
|
||||
"READYNESS": [
|
||||
{
|
||||
"tcp": ""
|
||||
},
|
||||
{
|
||||
"HTTP": ""
|
||||
},
|
||||
{
|
||||
"EXEC": "/ready.sh"
|
||||
}
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"CHAIN": "DOCKER-USER"
|
||||
},
|
||||
{
|
||||
"SOURCE": "smarthostbackend"
|
||||
},
|
||||
{
|
||||
"TARGET": "pocketid-app"
|
||||
},
|
||||
{
|
||||
"TYPE": "tcp"
|
||||
},
|
||||
{
|
||||
"TARGET_PORT": "1411"
|
||||
},
|
||||
{
|
||||
"COMMENT": "proxy for pocketid-app"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--privileged --rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
}
|
||||
]
|
||||
}
|
16
pocketid/pocketid-secret.json
Normal file
16
pocketid/pocketid-secret.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"pocketidpostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
|
||||
},
|
||||
"pocketidapp": {
|
||||
"PUBLIC_APP_URL": "https://#DOMAIN",
|
||||
"TRUST_PROXY": "true",
|
||||
"PUID": "1000",
|
||||
"PGID": "1000",
|
||||
"DB_PROVIDER": "postgres",
|
||||
"DB_CONNECTION_STRING": "postgresql://#POSTGRES_USER:#POSTGRES_PASSWORD@pocketidpostgres-db:5432/#POSTGRES_DB"
|
||||
}
|
||||
}
|
99
pocketid/service-pocketid.json
Normal file
99
pocketid/service-pocketid.json
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "pocketid",
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
"IMAGE": "alpine:latest",
|
||||
"UPDATE": "true",
|
||||
"NAME": "pocketid-init",
|
||||
"NETWORK": "host",
|
||||
"MEMORY": "64M",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /mkdir -p /etc/user/data/pocketid/db",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "postgres:16-alpine",
|
||||
"NAME": "pocketidpostgres-db",
|
||||
"UPDATE": "true",
|
||||
"ROLES": "postgres-db patroni",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "pocketid-net",
|
||||
"SELECTOR": "pocketidpostgres-db",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/pocketid/db",
|
||||
"DEST": "/var/lib/postgresql/data",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/pocketid/pocketid.json"
|
||||
],
|
||||
"ENVS": [
|
||||
{
|
||||
"POSTGRES_INITDB_ARGS": "--encoding=UTF8 --locale=C"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--label logging=promtail_user --label logging_jobname=containers --restart unless-stopped",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
"PRE_START": [],
|
||||
"POST_START": []
|
||||
},
|
||||
{
|
||||
"IMAGE": "11notes/pocket-id:1",
|
||||
"UPDATE": "true",
|
||||
"NAME": "pocketidapp",
|
||||
"DNS": [
|
||||
"coredns"
|
||||
],
|
||||
"MEMORY": "256M",
|
||||
"SELECTOR": "pocketid-app",
|
||||
"NETWORK": "pocketid-net",
|
||||
"VOLUMES": [],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "1411",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--label logging=promtail_user --label logging_jobname=containers --restart unless-stopped",
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/pocketid/pocketid.json"
|
||||
],
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
"PRE_START": "null",
|
||||
"POST_START": [
|
||||
"firewall-pocketid",
|
||||
"firewall-pocketid-dns",
|
||||
"firewall-pocketid-smtp",
|
||||
"domain-pocketid"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
43
pocketid/template.json
Normal file
43
pocketid/template.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "Pocketid",
|
||||
"title": "pocketid",
|
||||
"subtitle": "Identity management",
|
||||
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQzIDBIN0MzLjEzNDAxIDAgMCAzLjEzNDAxIDAgN1Y0M0MwIDQ2Ljg2NiAzLjEzNDAxIDUwIDcgNTBINDNDNDYuODY2IDUwIDUwIDQ2Ljg2NiA1MCA0M1Y3QzUwIDMuMTM0MDEgNDYuODY2IDAgNDMgMFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yNC40ODc4IDdDMzEuOTM4NCA3IDM4IDEzLjEzNjMgMzggMjAuNjc4N0MzOCAyMy42NDI2IDM3LjA3OSAyNi40NjMyIDM1LjMzNjIgMjguODM0MkMzMy42Mjc4IDMxLjE1OTUgMzEuMjkwMSAzMi44NDg2IDI4LjU3NTEgMzMuNzE5OEwyNy44MjQ3IDMzLjk2MUwyNi4wMzY0IDI1LjAzMTVMMjYuNTMxMSAyNC43ODkyQzI4LjE0NTkgMjMuOTk5IDI5LjE4OTYgMjIuMzE1NiAyOS4xODk2IDIwLjUwMTJDMjkuMTg5NiAxNy44NzY0IDI3LjA4MDUgMTUuNzQwOSAyNC40ODgxIDE1Ljc0MDlDMjEuODk1OCAxNS43NDA5IDE5Ljc4NiAxNy44NzY0IDE5Ljc4NiAyMC41MDEyQzE5Ljc4NiAyMi4zMTU2IDIwLjgzIDIzLjk5OSAyMi40NDQ4IDI0Ljc4OTJMMjIuOTMwMiAyNS4wMjcyTDIwLjA0OTUgNDNIMTJWN0gyNC40ODgxSDI0LjQ4NzhaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K",
|
||||
"description": "PocketID is an open-source identity and access management solution that provides secure and efficient user authentication and authorization for web applications and services.",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Domain",
|
||||
"key": "DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Postgres database name",
|
||||
"key": "POSTGRES_DB",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": ""
|
||||
},
|
||||
{
|
||||
"description": "Postgres username",
|
||||
"key": "POSTGRES_USER",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "time|md5|8"
|
||||
},
|
||||
{
|
||||
"description": "Postgres password for user",
|
||||
"key": "POSTGRES_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|md5|12"
|
||||
},
|
||||
{
|
||||
"description": "Postgres root user password",
|
||||
"key": "POSTGRES_ROOT_PASSWORD",
|
||||
"value": "",
|
||||
"required": "true",
|
||||
"generated": "random|sha256|20"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
{
|
||||
"name": "roundcube",
|
||||
"fields": [
|
||||
{
|
||||
"description": "Please add IMAP HOST:",
|
||||
"key": "ROUNDCUBE_IMAP_HOST",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add IMAP PORT:",
|
||||
"key": "ROUNDCUBE_IMAP_PORT",
|
||||
"value": "143",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add SMTP HOST:",
|
||||
"key": "ROUNDCUBE_SMTP_HOST",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add SMTP PORT (587, 465, 25, etc.):",
|
||||
"key": "ROUNDCUBE_SMTP_PORT",
|
||||
"value": "25",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add UPLOAD_MAX_FILESIZE (default: 50M):",
|
||||
"key": "ROUNDCUBE_UPLOAD",
|
||||
"value": "50M",
|
||||
"required": "true"
|
||||
},
|
||||
{
|
||||
"description": "Please add Roundcube DOMAIN:",
|
||||
"key": "ROUNDCUBE_DOMAIN",
|
||||
"value": "",
|
||||
"required": "true"
|
||||
}
|
||||
]
|
||||
}
|
@@ -61,7 +61,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/smtp/smtp.json"
|
||||
],
|
||||
"EXTRA": "null",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "true",
|
||||
"CMD": "null",
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "transmission",
|
||||
"DOMAIN": "#TRANSMISSION_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"PORT": "9091"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#TRANSMISSION_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "transmission",
|
||||
"DOMAIN": "#TRANSMISSION_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -78,7 +78,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/transmission/transmission.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "vaultwarden",
|
||||
"DOMAIN": "#VAULTWARDEN_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"PORT": "80"
|
||||
},
|
||||
{
|
||||
"DOMAIN": "#VAULTWARDEN_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
{
|
||||
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"main": {
|
||||
"SERVICE_NAME": "vaultwarden",
|
||||
"DOMAIN": "#VAULTWARDEN_DOMAIN"
|
||||
"DOMAIN": "#DOMAIN"
|
||||
},
|
||||
"containers": [
|
||||
{
|
||||
@@ -15,51 +15,41 @@
|
||||
"SOURCE": "USER_DATA",
|
||||
"DEST": "/etc/user/data",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "SYSTEM_LOG",
|
||||
"DEST": "/etc/system/log",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"EXTRA": "--rm",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"ENTRYPOINT": "sh -c",
|
||||
"CMD": "mkdir -p /etc/user/data/vaultwarden/data && mkdir -p /etc/user/data/vaultwarden/db && mkdir -p /etc/system/log/vaultwarden/db",
|
||||
"CMD": "mkdir -p /etc/user/data/vaultwarden/data && mkdir -p /etc/user/data/vaultwarden/db",
|
||||
"PRE_START": "null",
|
||||
"POST_START": "null"
|
||||
},
|
||||
{
|
||||
"IMAGE": "mariadb:latest",
|
||||
"IMAGE": "postgres:15-alpine",
|
||||
"UPDATE": "true",
|
||||
"NAME": "vaultwardenmysql-db",
|
||||
"NAME": "vaultwardenpostgres-db",
|
||||
"MEMORY": "256M",
|
||||
"NETWORK": "vaultwarden-net",
|
||||
"SELECTOR": "vaultwardenmysql-db",
|
||||
"SELECTOR": "vaultwardenpostgres-db",
|
||||
"VOLUMES": [
|
||||
{
|
||||
"SOURCE": "/etc/user/data/vaultwarden/db",
|
||||
"DEST": "/var/lib/mysql",
|
||||
"TYPE": "rw"
|
||||
},
|
||||
{
|
||||
"SOURCE": "/etc/system/log/vaultwarden/db",
|
||||
"DEST": "/var/lib/mysql/mysql-bin",
|
||||
"DEST": "/var/lib/postgres",
|
||||
"TYPE": "rw"
|
||||
}
|
||||
],
|
||||
"PORTS": [
|
||||
{
|
||||
"SOURCE": "null",
|
||||
"DEST": "3306",
|
||||
"DEST": "5432",
|
||||
"TYPE": "tcp"
|
||||
}
|
||||
],
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/vaultwarden/vaultwarden.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": "null",
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
@@ -124,7 +114,7 @@
|
||||
"ENV_FILES": [
|
||||
"/etc/user/secret/vaultwarden/vaultwarden.json"
|
||||
],
|
||||
"EXTRA": "--restart unless-stopped",
|
||||
"EXTRA": "--restart always",
|
||||
"DEPEND": [],
|
||||
"START_ON_BOOT": "false",
|
||||
"CMD": "null",
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"vaultwardenmysql": {
|
||||
"MARIADB_DATABASE": "#MARIADB_DATABASE",
|
||||
"MARIADB_USER": "#MARIADB_USER",
|
||||
"MARIADB_PASSWORD": "#MARIADB_PASSWORD",
|
||||
"MARIADB_ROOT_PASSWORD": "#MARIADB_ROOT_PASSWORD"
|
||||
"vaultwardenpostgres": {
|
||||
"POSTGRES_DB": "#POSTGRES_DB",
|
||||
"POSTGRES_USER": "#POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
|
||||
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
|
||||
},
|
||||
"vaultwardenapp": {
|
||||
"DATABASE_URL": "'mysql://#MARIADB_USER:#MARIADB_PASSWORD@vaultwardenmysql-db:3306/#MARIADB_DATABASE'",
|
||||
"DATABASE_URL": "'postgresql://#POSTGRES_USER:#POSTGRES_PASSWORD@vaultwardenpostgres-db:5432/#POSTGRES_DB'",
|
||||
"ADMIN_TOKEN": "#ADMIN_TOKEN",
|
||||
"VAULTWARDEN_DOMAIN": "#VAULTWARDEN_DOMAIN",
|
||||
"VAULTWARDEN_SMTP_PASSWORD": "#VAULTWARDEN_SMTP_PASSWORD"
|
||||
|
Reference in New Issue
Block a user