initial commit
This commit is contained in:
35
emerald-theory/adguard/ad-guard.yml
Normal file
35
emerald-theory/adguard/ad-guard.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
# AdGuard
|
||||
# Privacy focused DNS server
|
||||
# Created by AdGuard Team
|
||||
# ↳ https://github.com/adguardteam
|
||||
|
||||
services:
|
||||
adguard:
|
||||
image: adguard/adguardhome:latest
|
||||
container_name: adguard
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
ports:
|
||||
- 53:53/tcp
|
||||
- 53:53/udp
|
||||
- 853:853 # DNS over QUIC
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/adguard/data:/opt/adguardhome/work
|
||||
- /home/fxequals/docker/adguard:/opt/adguardhome/conf
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://adguard.com/kb/adguard-for-windows/admins-documentation/
|
||||
34
emerald-theory/arcane-preview-version-1/arcane-preview.yml
Normal file
34
emerald-theory/arcane-preview-version-1/arcane-preview.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
# Preview of Arcane 1.0
|
||||
|
||||
services:
|
||||
arcane:
|
||||
image: ghcr.io/ofkm/arcane:1.0-preview
|
||||
container_name: arcane
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
# ports:
|
||||
# - 3552:3552
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
ENVIRONMENT: production
|
||||
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
|
||||
DATABASE_URL: 'file:data/arcane.db?_pragma=journal_mode(WAL)&_pragma=busy_timeout(2500)&_txlock=immediate' # Quotes for Dockge nonsense
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/arcane/data:/app/data
|
||||
- /opt/dockge:/app/data/projects
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://arcane.ofkm.dev/
|
||||
2
emerald-theory/arcane-preview-version-1/arcane.env
Normal file
2
emerald-theory/arcane-preview-version-1/arcane.env
Normal file
@@ -0,0 +1,2 @@
|
||||
ENCRYPTION_KEY=
|
||||
JWT_SECRET=
|
||||
111
emerald-theory/arcane-registry.json
Normal file
111
emerald-theory/arcane-registry.json
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"$schema": "https://templates.arcane.ofkm.dev/schema.json",
|
||||
"author": "fxequals",
|
||||
"description": "Docker App Templates",
|
||||
"name": "emerald-theory",
|
||||
"templates": [
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/adguard/ad-guard.yml",
|
||||
"description": "DNS Server",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/adguard",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/adguard/ad-guard.env",
|
||||
"id": "adguard",
|
||||
"name": "AdGuard",
|
||||
"tags": [
|
||||
"dns",
|
||||
"webfilter"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/arcane/arcane.yml",
|
||||
"description": "Web based Docker GUI",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/arcane/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/arcane/arcane.env",
|
||||
"id": "arcane",
|
||||
"name": "Arcane",
|
||||
"tags": [
|
||||
"identity",
|
||||
"2fa",
|
||||
"access"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/arcane-preview-version-1/arcane-preview.yml",
|
||||
"description": "Web based Docker GUI 1.0 preview",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/arcane-preview-version-1/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/arcane-preview-version-1/arcane.env",
|
||||
"id": "arcane-preview",
|
||||
"name": "Arcane 1.0 Preview",
|
||||
"tags": [
|
||||
"docker-management",
|
||||
"web-based"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/authentik/authentik.yml",
|
||||
"description": "2FA access & authorization",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/authentik/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/authentik/authentik.env",
|
||||
"id": "authentik",
|
||||
"name": "Authentik",
|
||||
"tags": [
|
||||
"identity",
|
||||
"2fa",
|
||||
"access"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/chevereto/chevereto.yml",
|
||||
"description": "Imgur clone",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/chevereto/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/chevereto/chevereto.env",
|
||||
"id": "chevereto",
|
||||
"name": "Chevereto",
|
||||
"tags": [
|
||||
"image-upload"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/hugo/hugo.yml",
|
||||
"description": "Static Site Generator",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/hugo/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/adguard/hugo.env",
|
||||
"id": "hugo",
|
||||
"name": "Hugo",
|
||||
"tags": [
|
||||
"identity",
|
||||
"2fa",
|
||||
"access"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/n8n/n8n.yaml",
|
||||
"description": "Automation System",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory/n8n/",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/emerald-theory/n8n/n8n.env",
|
||||
"id": "n8n",
|
||||
"name": "n8n",
|
||||
"tags": [
|
||||
"identity",
|
||||
"2fa",
|
||||
"access"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
}
|
||||
],
|
||||
"url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
2
emerald-theory/arcane/arcane.env
Normal file
2
emerald-theory/arcane/arcane.env
Normal file
@@ -0,0 +1,2 @@
|
||||
ENCRYPTION_KEY=
|
||||
JWT_SECRET=
|
||||
46
emerald-theory/arcane/arcane.yml
Normal file
46
emerald-theory/arcane/arcane.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
|
||||
# Arcane
|
||||
# Modern Docker Web UI
|
||||
# Created by Kyle Mendell
|
||||
# ↳ https://github.com/getarcaneapp/arcane
|
||||
|
||||
services:
|
||||
arcane:
|
||||
image: ghcr.io/getarcaneapp/arcane
|
||||
container_name: arcane
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3552:3552
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
APP_URL: https://arcane.mydigitalfix.com
|
||||
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /home/fxequals/docker/arcane/data:/app/data
|
||||
- /opt/dockge:/opt/dockge # This maps existing Dockge stacks and lets Arcane manage them, otherwise /host/path/to/projects:/app/data/projects
|
||||
|
||||
upgrader:
|
||||
image: ghcr.io/getarcaneapp/arcane:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
entrypoint: ['/app/arcane']
|
||||
command: ['upgrade', '--auto']
|
||||
profiles:
|
||||
- tools
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://getarcane.app/docs
|
||||
46
emerald-theory/arcane/wpsit arcane.yaml
Normal file
46
emerald-theory/arcane/wpsit arcane.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
|
||||
# Arcane
|
||||
# Modern Docker GUI Manager
|
||||
# Created by Kyle Mendell
|
||||
# ↳ https://github.com/getarcaneapp/arcane
|
||||
|
||||
services:
|
||||
arcane:
|
||||
image: ghcr.io/getarcaneapp/arcane
|
||||
container_name: arcane
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3552:3552
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
APP_URL: https://arcane.wpsit.org
|
||||
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /home/wpsit/docker/arcane/data:/app/data
|
||||
- /opt/dockge:/opt/dockge # This maps existing Dockge stacks and lets Arcane manage them, otherwise /host/path/to/projects:/app/data/projects
|
||||
|
||||
upgrader:
|
||||
image: ghcr.io/getarcaneapp/arcane:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
entrypoint: ['/app/arcane']
|
||||
command: ['upgrade', '--auto']
|
||||
profiles:
|
||||
- tools
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://getarcane.app/docs
|
||||
191
emerald-theory/authentik/README.md
Normal file
191
emerald-theory/authentik/README.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# **Authentik Overview**
|
||||
|
||||
Authentik is an open-source Identity Provider (IdP) that allows users to self-host authentication and single sign-on (SSO)
|
||||
|
||||
[GitHub Repository](https://github.com/goauthentik/authentik)
|
||||
[Official Documentation](https://docs.goauthentik.io/docs)
|
||||
# **Pre-Install**
|
||||
|
||||
## Dependencies
|
||||
- None
|
||||
## Generate PG_PASS for .env
|
||||
- `openssl rand -base64 36`
|
||||
## Generate AUTHENTIK_SECRET_KEY for .env
|
||||
- `openssl rand -base64 60`
|
||||
## Create Volume Folders
|
||||
- certs
|
||||
- custom-templates
|
||||
- database
|
||||
- media
|
||||
- redis
|
||||
## Create a .env file
|
||||
```docker
|
||||
AUTHENTIK_PORT_HTTP=9000
|
||||
AUTHENTIK_PORT_HTTPS=9443
|
||||
PG_PASS=
|
||||
AUTHENTIK_SECRET_KEY=
|
||||
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
||||
AUTHENTIK_EMAIL__HOST=
|
||||
AUTHENTIK_EMAIL__PORT=25
|
||||
AUTHENTIK_EMAIL__USERNAME=
|
||||
AUTHENTIK_EMAIL__PASSWORD=
|
||||
AUTHENTIK_EMAIL__USE_TLS=true
|
||||
AUTHENTIK_EMAIL__USE_SSL=false
|
||||
AUTHENTIK_EMAIL__TIMEOUT=10
|
||||
AUTHENTIK_EMAIL__FROM=
|
||||
```
|
||||
|
||||
# **Post-Install**
|
||||
|
||||
> **⚠️ WARNING**
|
||||
> Wait a few minutes before attempting to connect for the first time. All servers need to show as **Healthy** in Dockge
|
||||
|
||||
Go to http://your-server-ip:9000/if/flow/initial-setup/
|
||||
- Create a unique email and password for admin account
|
||||
- Don't use your primary email address for this account as it will conflict when you register yourself as a user
|
||||
|
||||
# **NGINX Proxy Manager**
|
||||
|
||||
## Details
|
||||
- **Domain Names:** auth.ignitedinspirations.net
|
||||
- **Scheme:** http
|
||||
- **Forward Hostname / IP:** 172.18.1.10
|
||||
- **Forward Port:** 9443
|
||||
- **Cache Assets:** True
|
||||
- **Block Common Exploits:** True
|
||||
- **Websockets Support:** True
|
||||
- **Access Lists:** Publicly Accessible
|
||||
## Custom Locations
|
||||
- None
|
||||
## SSL
|
||||
- **SSL Certificate:** Let's Encrypt
|
||||
- **Force SSL:** True
|
||||
- **HTTP/2 Support:** True
|
||||
- **HSTS Enabled:** False
|
||||
- **HSTS Subdomains:** False
|
||||
|
||||
## Advanced
|
||||
The following code needs to be entered into the **Custom Nginx Configuration** in order to have Authentik protect this app
|
||||
```NGINX
|
||||
# Increase buffer size for large headers
|
||||
# This is needed only if you get 'upstream sent too big header while reading response
|
||||
# header from upstream' error when trying to access an application protected by goauthentik
|
||||
proxy_buffers 8 16k;
|
||||
proxy_buffer_size 32k;
|
||||
|
||||
location / {
|
||||
# Put your proxy_pass to your application here
|
||||
proxy_pass $forward_scheme://$server:$port;
|
||||
|
||||
# authentik-specific config
|
||||
auth_request /outpost.goauthentik.io/auth/nginx;
|
||||
error_page 401 = @goauthentik_proxy_signin;
|
||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||
add_header Set-Cookie $auth_cookie;
|
||||
|
||||
# translate headers from the outposts back to the actual upstream
|
||||
auth_request_set $authentik_username $upstream_http_x_authentik_username;
|
||||
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
|
||||
auth_request_set $authentik_email $upstream_http_x_authentik_email;
|
||||
auth_request_set $authentik_name $upstream_http_x_authentik_name;
|
||||
auth_request_set $authentik_uid $upstream_http_x_authentik_uid;
|
||||
|
||||
proxy_set_header X-authentik-username $authentik_username;
|
||||
proxy_set_header X-authentik-groups $authentik_groups;
|
||||
proxy_set_header X-authentik-email $authentik_email;
|
||||
proxy_set_header X-authentik-name $authentik_name;
|
||||
proxy_set_header X-authentik-uid $authentik_uid;
|
||||
}
|
||||
|
||||
# all requests to /outpost.goauthentik.io must be accessible without authentication
|
||||
location /outpost.goauthentik.io {
|
||||
proxy_pass https://<IP_ADDRESS>:9443/outpost.goauthentik.io;
|
||||
# ensure the host of this vserver matches your external URL you've configured
|
||||
# in authentik
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
||||
add_header Set-Cookie $auth_cookie;
|
||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||
|
||||
# required for POST requests to work
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
}
|
||||
|
||||
# Special location for when the /auth endpoint returns a 401,
|
||||
# redirect to the /start URL which initiates SSO
|
||||
location @goauthentik_proxy_signin {
|
||||
internal;
|
||||
add_header Set-Cookie $auth_cookie;
|
||||
return 302 /outpost.goauthentik.io/start?rd=$request_uri;
|
||||
# For domain level, use the below error_page to redirect to your authentik server with the full redirect path
|
||||
# return 302 https://authentik-server:9443/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
|
||||
}
|
||||
```
|
||||
|
||||
> **Note**
|
||||
> If you are using Portainer to manage your Docker environment, you need to specify the ENV_FILE name to be `stacks.env`
|
||||
|
||||
Edit the IP address in `proxy_pass` above and make sure it matches the one you specify in the Authentik docker-compose file
|
||||
|
||||
# **Authentik**
|
||||
|
||||
## Create Google OAuth2 token
|
||||
1) Go to [Official Documentation](https://support.google.com/cloud/answer/6158849?hl=en) and follow steps there
|
||||
- Make note of the Client ID and Client Secret
|
||||
2) Add `https://your-authentik-domain-name/source/oauth/callback/google` to list of Authorized redirect URI
|
||||
## Add Google SSO Support
|
||||
[Official Documentation](https://docs.goauthentik.io/docs/users-sources/sources/social-logins/google/cloud/)
|
||||
1) Click on **Directory** and then click on **Federation & Social login**
|
||||
2) Click on **Create**
|
||||
3) Click on **Google OAuth Source** and click **Next**
|
||||
4) Enter Google for the **Name**
|
||||
5) The **Slug** will automatically be filled
|
||||
6) Enter your Client ID and Client Secret generated when creating Google OAuth2 token
|
||||
7) Click **Finish**
|
||||
## Add Google as a Login Source
|
||||
[Official Documentation](https://docs.goauthentik.io/docs/users-sources/sources/#add-sources-to-default-login-page)
|
||||
1) Click on **Flow and Stages** then click on **Stages**
|
||||
2) Find the `default-authentication-identification` stage and click on the Edit button
|
||||
3) Under **Source settings** click on `google` and then click on `>` to add it
|
||||
## Add User to Directory
|
||||
1) Navigate to **Directory** then click on **Users**
|
||||
2) Enter your email address for the **Username**
|
||||
3) Enter your full name for **Name**
|
||||
4) Set **User type** to **Internal**
|
||||
5) Enter your email address for **Email**
|
||||
6) Click **Create**
|
||||
## Add User to Admin Group
|
||||
1) Navigate to **Directory** then click on **Groups**
|
||||
2) Click on `authentik Admins`
|
||||
3) Click on **Users** tab
|
||||
4) Click on **Add existing user**
|
||||
5) Click on `+` then select your account and click **Add**
|
||||
6) Click **Add**
|
||||
## Set New Users to Inactive by Default
|
||||
1) Click on **Flow and Stages** then click on **Stages**
|
||||
2) Find the `default-source-enrollment-write` stage and click the Edit button
|
||||
3) Toggle the **Create users as inactive** to On
|
||||
## Create Application & Provider
|
||||
1) Click on **Create with Wizard**
|
||||
2) Enter the Application's Name
|
||||
- This will automatically fill the **Slug** name
|
||||
3) Do not enter a Group Name
|
||||
4) Set **Policy engine mode** to `any` and click **Next**
|
||||
5) Select **Proxy Provider** and click **Next**
|
||||
6) **Name** will automatically be filled in
|
||||
7) Select `default-provider-authorization-explicit-consent` for **Authorization Flow**
|
||||
8) Click on **Forward auth (single application)**
|
||||
9) Enter the **External host** name and click **Next**
|
||||
- This is generally the proxy hostname (ex. https://docker.mysite.com)
|
||||
10) Skip **Policy/User/Group Bindings** step and click **Next**
|
||||
11) Click **Close**
|
||||
## Add Application to Outpost
|
||||
1) Click on **Application** then click on **Outposts**
|
||||
2) Find the `authentik Embedded Outpost` and click the Edit button on the right
|
||||
3) Click on the application under the **Available Applications** and then click on the `>` button
|
||||
4) Click on **Update**
|
||||
# **Additional Information**
|
||||
---
|
||||
> **⚠️ WARNING**
|
||||
> If you are using Portainer to manage your Docker environment, you need to specify the ENV_FILE name to be `stacks.env`
|
||||
13
emerald-theory/authentik/authentik.env
Normal file
13
emerald-theory/authentik/authentik.env
Normal file
@@ -0,0 +1,13 @@
|
||||
AUTHENTIK_PORT_HTTP=9000
|
||||
AUTHENTIK_PORT_HTTPS=9443
|
||||
PG_PASS= # <-- openssl rand -base64 36 | tr -d '\n'
|
||||
AUTHENTIK_SECRET_KEY= # <-- openssl rand -base64 36 | tr -d '\n'
|
||||
AUTHENTIK_ERROR_REPORTING__ENABLED=true
|
||||
AUTHENTIK_EMAIL__HOST=
|
||||
AUTHENTIK_EMAIL__PORT=
|
||||
AUTHENTIK_EMAIL__USERNAME=
|
||||
AUTHENTIK_EMAIL__PASSWORD=
|
||||
AUTHENTIK_EMAIL__USE_TLS=true
|
||||
AUTHENTIK_EMAIL__USE_SSL=false
|
||||
AUTHENTIK_EMAIL__TIMEOUT=10
|
||||
AUTHENTIK_EMAIL__FROM=
|
||||
132
emerald-theory/authentik/authentik.yml
Normal file
132
emerald-theory/authentik/authentik.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
---
|
||||
|
||||
# Authentik
|
||||
# 2FA for web apps
|
||||
# Created by Authentik Security, LLC
|
||||
# ↳ https://github.com/goauthentik/authentik
|
||||
|
||||
services:
|
||||
authentik-postgresql:
|
||||
image: docker.io/library/postgres:12-alpine
|
||||
container_name: authentik-postgresql
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
|
||||
start_period: 20s
|
||||
interval: 30s
|
||||
retries: 5
|
||||
timeout: 5s
|
||||
|
||||
volumes:
|
||||
- /home/fxequals/docker/authentik/database:/var/lib/postgresql/data
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
|
||||
POSTGRES_USER: ${PG_USER:-authentik}
|
||||
POSTGRES_DB: ${PG_DB:-authentik}
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
authentik-redis:
|
||||
image: docker.io/library/redis:alpine
|
||||
container_name: authentik-redis
|
||||
command: --save 60 1 --loglevel warning
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- redis-cli ping | grep PONG
|
||||
start_period: 20s
|
||||
interval: 30s
|
||||
retries: 5
|
||||
timeout: 3s
|
||||
|
||||
volumes:
|
||||
- /home/fxequals/docker/authentik/redis:/data
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
authentik-server:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
command: server
|
||||
container_name: authentik-server
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
ipv4_address: 172.18.1.10
|
||||
|
||||
ports:
|
||||
- 9000:9000 # Remove after putting Authentik behind NGINX
|
||||
- 9443:9443 # Remove after putting Authentik behind NGINX
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
AUTHENTIK_REDIS__HOST: authentik-redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
|
||||
volumes:
|
||||
- /home/fxequals/docker/authentik/media:/media
|
||||
- /home/fxequals/docker/authentik/custom-templates:/templates
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
depends_on:
|
||||
- authentik-postgresql
|
||||
- authentik-redis
|
||||
|
||||
authentik-worker:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
restart: unless-stopped
|
||||
container_name: authentik-worker
|
||||
command: worker
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
AUTHENTIK_REDIS__HOST: authentik-redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
|
||||
volumes:
|
||||
- /home/fxequals/docker/authentik/media:/media
|
||||
- /home/fxequals/docker/authentik/certs:/certs
|
||||
- /home/fxequals/docker/authentik/custom-templates:/templates
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
depends_on:
|
||||
- authentik-postgresql
|
||||
- authentik-redis
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://docs.goauthentik.io/docs/install-config/install/docker-compose
|
||||
1
emerald-theory/chevereto/chevereto.env
Normal file
1
emerald-theory/chevereto/chevereto.env
Normal file
@@ -0,0 +1 @@
|
||||
DB_PASSWORD=
|
||||
77
emerald-theory/chevereto/chevereto.yml
Normal file
77
emerald-theory/chevereto/chevereto.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
|
||||
# Chevereto
|
||||
# Self-hosted Imgur clone
|
||||
# Created by
|
||||
# ↳ https://github.com/chevereto/docker
|
||||
|
||||
services:
|
||||
chevereto-db:
|
||||
image: mariadb:jammy
|
||||
container_name: chevereto-db
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
MYSQL_ROOT_PASSWORD: ${DB_ROOTPASSWORD}
|
||||
MYSQL_DATABASE: chevereto
|
||||
MYSQL_USER: chevereto
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- chevereto-database:/var/lib/mysql
|
||||
|
||||
chevereto-server:
|
||||
image: chevereto/chevereto:latest
|
||||
container_name: chevereto-server
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
CHEVERETO_DB_HOST: chevereto-db
|
||||
CHEVERETO_DB_USER: chevereto
|
||||
CHEVERETO_DB_PASS: ${DB_PASSWORD}
|
||||
CHEVERETO_DB_PORT: 3306
|
||||
CHEVERETO_DB_NAME: chevereto
|
||||
CHEVERETO_HOSTNAME: photos.ignitedinspirations.net
|
||||
CHEVERETO_HOSTNAME_PATH: /
|
||||
CHEVERETO_HTTPS: 1
|
||||
CHEVERETO_MAX_POST_SIZE: 1G
|
||||
CHEVERETO_MAX_UPLOAD_SIZE: 1G
|
||||
CHEVERETO_SERVICING: server
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- chevereto-storage:/var/www/html/images/
|
||||
- chevereto-app:/var/www/html/
|
||||
|
||||
volumes:
|
||||
database:
|
||||
storage:
|
||||
app:
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://v4-docs.chevereto.com/#install
|
||||
0
emerald-theory/hugo/hugo.env
Normal file
0
emerald-theory/hugo/hugo.env
Normal file
32
emerald-theory/hugo/hugo.yml
Normal file
32
emerald-theory/hugo/hugo.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# Hugo
|
||||
# Static Site Generator
|
||||
# Created by Hugo
|
||||
# ↳ https://github.com/gohugoio/hugo
|
||||
|
||||
services:
|
||||
hugo:
|
||||
image: ghcr.io/gohugoio/hugo:latest
|
||||
container_name: hugo
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/hugo/website:/src
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://gohugo.io/documentation
|
||||
3
emerald-theory/n8n/n8n.env
Normal file
3
emerald-theory/n8n/n8n.env
Normal file
@@ -0,0 +1,3 @@
|
||||
DOMAIN_NAME=
|
||||
SUBDOMAIN=
|
||||
GENERIC_TIMEZONE=America/New_York
|
||||
39
emerald-theory/n8n/n8n.yaml
Normal file
39
emerald-theory/n8n/n8n.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
|
||||
# n8n
|
||||
# Event Automation
|
||||
# Created by <APP_CREATOR_NAME>
|
||||
# ↳ https://github.com/n8n-io/n8n
|
||||
|
||||
services:
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n:latest
|
||||
container_name: n8n
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 5678:5678
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
N8N_HOST: ${SUBDOMAIN}.${DOMAIN_NAME}
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: https
|
||||
NODE_ENV: production
|
||||
WEBHOOK_URL: https://${SUBDOMAIN}.${DOMAIN_NAME}/
|
||||
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/n8n/data:/home/node/.n8n
|
||||
- /home/fxequals/docker/n8n/files:/files
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://docs.n8n.io/
|
||||
1
emerald-theory/wiki-js/README.md
Normal file
1
emerald-theory/wiki-js/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Overview
|
||||
2
emerald-theory/wiki-js/wiki-js.env
Normal file
2
emerald-theory/wiki-js/wiki-js.env
Normal file
@@ -0,0 +1,2 @@
|
||||
DB_USER=
|
||||
DB_PASS=
|
||||
44
emerald-theory/wiki-js/wiki-js.yml
Normal file
44
emerald-theory/wiki-js/wiki-js.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
services:
|
||||
wiki-js-server:
|
||||
image: ghcr.io/requarks/wiki:2
|
||||
container_name: wiki-js-server
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- wiki-js-database
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
DB_TYPE: postgres
|
||||
DB_HOST: wiki-js-database
|
||||
DB_PORT: 5432
|
||||
DB_USER: ${DB_USER}
|
||||
DB_PASS: ${DB_PASS}
|
||||
DB_NAME: wiki
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
wiki-js-database:
|
||||
image: postgres:15-alpine
|
||||
container_name: wiki-js-database
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3000:3000
|
||||
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASS}
|
||||
POSTGRES_USER: ${DB_USER}
|
||||
POSTGRES_DB: wiki
|
||||
volumes:
|
||||
- /home/fxequals/docker/wiki-js/database:/var/lib/postgresql/data
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://docs.requarks.io/
|
||||
Reference in New Issue
Block a user