Compare commits
	
		
			173 Commits
		
	
	
		
			9103bf7e95
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bab3104519 | |||
| 2e5d817169 | |||
| 40efb47737 | |||
| 1af65aa421 | |||
| 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 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| *tmp* | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -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" | ||||
|         }, | ||||
| @@ -61,7 +61,7 @@ | ||||
|             "DEPEND": [], | ||||
|             "START_ON_BOOT": "false", | ||||
|             "ENTRYPOINT": "sh", | ||||
|             "CMD": "if [ ! -f /database.db ]; then /filebrowser config init && /filebrowser users add \"$FILEBROWSER_USER\" \"$FILEBROWSER_PASS\" --perm.admin && /filebrowser ; else /filebrowser ; fi", | ||||
|             "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": [] | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										75
									
								
								gitea/firewall-gitea-smtp.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								gitea/firewall-gitea-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": "gitea-app" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET": "smtp" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TYPE": "tcp" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET_PORT": "25" | ||||
|                 }, | ||||
|                 { | ||||
|                     "COMMENT": "gitea to smtp" | ||||
|                 } | ||||
|             ], | ||||
|             "EXTRA": "--privileged --rm", | ||||
|             "DEPEND": "null", | ||||
|             "START_ON_BOOT": "false", | ||||
|             "CMD": "null", | ||||
|             "PRE_START": "null", | ||||
|             "POST_START": "null" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										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
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1,15 +1,18 @@ | ||||
| { | ||||
|     "name": "homeassistant", | ||||
|     "description": "Home Assistant lets you automate, control, and monitor smart home devices securely from a single interface.", | ||||
|     "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": "Your Home Assistant domain:", | ||||
|             "description": "Domain", | ||||
|             "key": "DOMAIN", | ||||
|             "value": "", | ||||
|             "required": "true" | ||||
|         }, | ||||
|         { | ||||
|             "description": "Home Assistant timezone:", | ||||
|             "description": "Timezone", | ||||
|             "key": "TZ", | ||||
|             "value": "Europe/Budapest", | ||||
|             "required": "true" | ||||
|   | ||||
| @@ -29,7 +29,7 @@ | ||||
|             "IMAGE": "tensorchord/pgvecto-rs:pg14-v0.2.0", | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "immichpostgres-db", | ||||
|             "MEMORY": "256M", | ||||
|             "MEMORY": "768M", | ||||
|             "NETWORK": "immich-net", | ||||
|             "SELECTOR": "immichpostgres", | ||||
|             "VOLUMES": [ | ||||
| @@ -49,6 +49,11 @@ | ||||
|             "ENV_FILES": [ | ||||
|                 "/etc/user/secret/immich/immich.json" | ||||
|             ], | ||||
|             "ENVS": [ | ||||
|                 { | ||||
|                     "POSTGRES_INITDB_ARGS": "--data-checksums" | ||||
|                 } | ||||
|             ], | ||||
|             "EXTRA": "--restart always", | ||||
|             "DEPEND": "null", | ||||
|             "START_ON_BOOT": "false", | ||||
| @@ -81,7 +86,7 @@ | ||||
|             "IMAGE": "ghcr.io/immich-app/immich-server:#IMMICH_VERSION", | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "immichapp-app", | ||||
|             "MEMORY": "1024M", | ||||
|             "MEMORY": "1536M", | ||||
|             "NETWORK": "immich-net", | ||||
|             "SELECTOR": "immichapp", | ||||
|             "PORTS": [ | ||||
| @@ -136,7 +141,7 @@ | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "immichmachine-learning", | ||||
|             "ROLES": "backend-www", | ||||
|             "MEMORY": "1024M", | ||||
|             "MEMORY": "1536M", | ||||
|             "NETWORK": "immich-net", | ||||
|             "SELECTOR": "immichmachine-learning", | ||||
|             "ENVS": [ | ||||
|   | ||||
| @@ -1,24 +1,28 @@ | ||||
| { | ||||
|     "name": "immich", | ||||
|     "description":"Immich is a photo and video backup solution that helps you securely store and manage your media across devices.", | ||||
|     "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": "Your Immich domain:", | ||||
|             "description": "Domain", | ||||
|             "key": "DOMAIN", | ||||
|             "value": "", | ||||
|             "required": "true" | ||||
|         }, | ||||
|         { | ||||
|             "description": "Immich timezone:", | ||||
|             "description": "Timezone", | ||||
|             "key": "IMMICH_TZ", | ||||
|             "value": "Europe/Budapest", | ||||
|             "required": "true" | ||||
|         }, | ||||
|         { | ||||
|             "description": "Immich version:", | ||||
|             "description": "Version", | ||||
|             "key": "IMMICH_VERSION", | ||||
|             "value": "release", | ||||
|             "required": "true" | ||||
|             "required": "true", | ||||
|             "advanced": "true" | ||||
|         }, | ||||
|         { | ||||
|             "description": "POSTGRES database name", | ||||
|   | ||||
| @@ -29,7 +29,7 @@ | ||||
|             "POST_START": "null" | ||||
|         }, | ||||
|         { | ||||
|             "IMAGE": "jellyfin/jellyfin:latest", | ||||
|             "IMAGE": "jellyfin/jellyfin:#VERSION", | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "jellyfin", | ||||
|             "NETWORK": "host", | ||||
|   | ||||
| @@ -1,11 +1,21 @@ | ||||
| { | ||||
|     "name": "jellyfin", | ||||
|     "description": "Jellyfin media server lets you stream and organize your movies, TV shows, music, and photos across all your devices.", | ||||
|     "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": "Your 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" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @@ -26,7 +26,7 @@ | ||||
|                     "TARGET": "leantime-app" | ||||
|                 }, | ||||
|                 { | ||||
|                     "PORT": "80" | ||||
|                     "PORT": "8080" | ||||
|                 }, | ||||
|                 { | ||||
|                     "DOMAIN": "#DOMAIN" | ||||
|   | ||||
| @@ -58,7 +58,7 @@ | ||||
|                     "TYPE": "tcp" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET_PORT": "80" | ||||
|                     "TARGET_PORT": "8080" | ||||
|                 }, | ||||
|                 { | ||||
|                     "COMMENT": "leantime" | ||||
| @@ -115,7 +115,7 @@ | ||||
|             "PORTS": [ | ||||
|                 { | ||||
|                     "SOURCE": "null", | ||||
|                     "DEST": "80", | ||||
|                     "DEST": "8080", | ||||
|                     "TYPE": "tcp" | ||||
|                 } | ||||
|             ], | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1,113 +0,0 @@ | ||||
| { | ||||
|     "name": "leantime", | ||||
|     "fields": [ | ||||
|         { | ||||
|             "description": "Please add LeanTime domain:", | ||||
|             "key": "DOMAIN", | ||||
|             "value": "", | ||||
|             "required": "true" | ||||
|         }, | ||||
|         { | ||||
|             "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" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| { | ||||
|     "main": { | ||||
|         "SERVICE_NAME": "leantime", | ||||
|         "DOMAIN": "#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": "#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" | ||||
|                 } | ||||
|             ] | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										75
									
								
								matrix/firewall-matrix-admin.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								matrix/firewall-matrix-admin.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": "matrixadmin" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TYPE": "tcp" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET_PORT": "80" | ||||
|                 }, | ||||
|                 { | ||||
|                     "COMMENT": "matrixadmin for proxy" | ||||
|                 } | ||||
|             ], | ||||
|             "EXTRA": "--privileged --rm", | ||||
|             "DEPEND": "null", | ||||
|             "START_ON_BOOT": "false", | ||||
|             "CMD": "null", | ||||
|             "PRE_START": "null", | ||||
|             "POST_START": "null" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										76
									
								
								matrix/firewall-matrix-dns.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								matrix/firewall-matrix-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": "matrixserver" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET": "coredns" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TYPE": "udp" | ||||
|                 }, | ||||
|                 { | ||||
|                     "TARGET_PORT": "53" | ||||
|                 }, | ||||
|                 { | ||||
|                     "COMMENT": "matrix nginx access for local dns" | ||||
|                 } | ||||
|             ], | ||||
|             "EXTRA": "--privileged --rm", | ||||
|             "DEPEND": "null", | ||||
|             "START_ON_BOOT": "false", | ||||
|             "CMD": "", | ||||
|             "PRE_START": [], | ||||
|             "POST_START": [] | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										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,48 +1,60 @@ | ||||
|  { | ||||
| { | ||||
|     "main": { | ||||
|       "SERVICE_NAME": "nextcloud", | ||||
|       "DOMAIN": "#NEXTCLOUD_TRUSTED_DOMAINS" | ||||
|         "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" }, | ||||
|           { "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,20 +1,20 @@ | ||||
| { | ||||
|     "nextcloudmysql": { | ||||
|         "MARIADB_DATABASE": "#MARIADB_DATABASE", | ||||
|         "MARIADB_USER": "#MARIADB_USER", | ||||
|         "MARIADB_PASSWORD": "#MARIADB_PASSWORD", | ||||
|         "MARIADB_ROOT_PASSWORD": "#MARIADB_ROOT_PASSWORD" | ||||
|     "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", | ||||
|         "NEXTCLOUD_TRUSTED_DOMAINS": "#NEXTCLOUD_TRUSTED_DOMAINS", | ||||
|         "OVERWRITEHOST": "#NEXTCLOUD_TRUSTED_DOMAINS", | ||||
|         "DOMAIN": "#DOMAIN", | ||||
|         "OVERWRITEHOST": "#DOMAIN", | ||||
|         "NEXTCLOUD_DATA_DIR": "/var/data", | ||||
|         "MYSQL_DATABASE": "#MARIADB_DATABASE", | ||||
|         "MYSQL_USER": "#MARIADB_USER", | ||||
|         "MYSQL_PASSWORD": "#MARIADB_PASSWORD", | ||||
|         "MYSQL_HOST": "nextcloudmysql-db", | ||||
|         "POSTGRES_DB": "#POSTGRES_DB", | ||||
|         "POSTGRES_USER": "#POSTGRES_USER", | ||||
|         "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", | ||||
|         "POSTGRES_HOST": "nextcloudpostgres-db", | ||||
|         "REDIS_HOST": "nextcloud-redis" | ||||
|     } | ||||
| } | ||||
| @@ -34,47 +34,31 @@ | ||||
|             "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 && chown -R 82:82 /etc/user/data/nextcloud/apps && chown -R 82:82 /etc/user/data/nextcloud/config", | ||||
|             "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": "mariadb:10.5", | ||||
|             "IMAGE": "postgres:15-alpine", | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "nextcloudmysql-db", | ||||
|             "NAME": "nextcloudpostgres-db", | ||||
|             "MEMORY": "256M", | ||||
|             "NETWORK": "nextcloud-net", | ||||
|             "SELECTOR": "nextcloudmysql", | ||||
|             "SELECTOR": "nextcloudpostgres", | ||||
|             "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", | ||||
|                     "DEST": "/var/lib/postgres", | ||||
|                     "TYPE": "rw" | ||||
|                 } | ||||
|             ], | ||||
|             "PORTS": [ | ||||
|                 { | ||||
|                     "SOURCE": "null", | ||||
|                     "DEST": "3306", | ||||
|                     "DEST": "5432", | ||||
|                     "TYPE": "tcp" | ||||
|                 } | ||||
|             ], | ||||
|             "READYNESS": [ | ||||
|                 { | ||||
|                     "tcp": "3306" | ||||
|                 }, | ||||
|                 { | ||||
|                     "HTTP": "" | ||||
|                 }, | ||||
|                 { | ||||
|                     "EXEC": "/ready.sh" | ||||
|                 } | ||||
|             ], | ||||
|             "ENV_FILES": [ | ||||
|                 "/etc/user/secret/nextcloud/nextcloud.json" | ||||
|             ], | ||||
| @@ -182,7 +166,7 @@ | ||||
|             ] | ||||
|         }, | ||||
|         { | ||||
|             "IMAGE": "registry.format.hu/nextcloud-nginx:1.23.1", | ||||
|             "IMAGE": "safebox/nextcloud-nginx:latest", | ||||
|             "UPDATE": "true", | ||||
|             "NAME": "nextcloudnginx", | ||||
|             "ROLES": "backend-www", | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -29,7 +29,7 @@ | ||||
|                     "PORT": "3000" | ||||
|                 }, | ||||
|                 { | ||||
|                     "DOMAIN": "#OUTLINE_DOMAIN" | ||||
|                     "DOMAIN": "#DOMAIN" | ||||
|                 }, | ||||
|                 { | ||||
|                     "SMARTHOST_PROXY_PATH": "/smarthost-domains" | ||||
|   | ||||
| @@ -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" | ||||
|     } | ||||
| } | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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:", | ||||
|             "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" | ||||
|                 } | ||||
|         ] | ||||
| } | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -15,44 +15,34 @@ | ||||
|                     "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" | ||||
|                 } | ||||
|             ], | ||||
|   | ||||
										
											
												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