1
0

Compare commits

...

68 Commits

Author SHA1 Message Date
fxequals
86325a4a45 initial commit 2025-07-20 23:20:47 -04:00
fxequals
05685ce4a2 initial commit 2025-07-20 18:13:38 -04:00
fxequals
f39e4e3bd9 initial commit 2025-07-20 17:57:06 -04:00
fxequals
d66afe9b2d minor updates 2025-07-20 16:37:08 -04:00
fxequals
7dbd8c8fee made ssh optional 2025-07-20 16:31:17 -04:00
fxequals
0bff86ed67 minor updates 2025-07-20 14:58:47 -04:00
fxequals
31cdd94cf6 arcane formatting 2025-07-20 01:03:16 -04:00
fxequals
135b942996 arcane formatting 2025-07-20 01:02:08 -04:00
fxequals
131182f4b0 initial commit 2025-07-19 23:33:08 -04:00
fxequals
191bf3ac1d updated info 2025-07-19 22:31:49 -04:00
fxequals
2dbeed20c1 added session secret notes 2025-07-19 21:43:02 -04:00
fxequals
e773203490 removed vscode 2025-07-19 21:30:38 -04:00
fxequals
9e575ad403 updated gitignore 2025-07-19 21:27:00 -04:00
fxequals
793183fc3b added gitignore 2025-07-19 21:24:02 -04:00
fxequals
98e68981a8 arcane formatting 2025-07-19 21:21:44 -04:00
fxequals
2ffb4412c5 made enn variable 2025-07-19 21:16:53 -04:00
fxequals
dc380eb338 added subjecttag 2025-07-19 21:15:28 -04:00
fxequals
a1be96ac2f update 2025-07-19 20:47:48 -04:00
fxequals
e37a6fec1f commented out /opt/stacks 2025-07-19 16:07:36 -04:00
fxequals
912fd3ea16 added docker volume 2025-07-19 15:46:03 -04:00
fxequals
16ae1966c9 fixed yaml 2025-07-19 15:31:05 -04:00
fxequals
2dd305a836 added chevereto 2025-07-19 15:26:12 -04:00
fxequals
9baa345395 added db_password 2025-07-19 15:21:15 -04:00
fxequals
739bfdcf8e added github 2025-07-19 15:20:10 -04:00
fxequals
02d505dcca initial commit 2025-07-19 15:19:27 -04:00
fxequals
5dc3541bd1 small update 2025-07-19 14:19:01 -04:00
fxequals
2bb960b80d linting 2025-07-19 14:02:29 -04:00
fxequals
382d41e6d4 added env arcane 2025-07-19 13:12:06 -04:00
fxequals
39d26c32bc inital commit 2025-07-19 13:10:39 -04:00
fxequals
25197600ca added env for n8n 2025-07-19 12:16:02 -04:00
fxequals
7519bc6893 added timezone 2025-07-19 12:14:14 -04:00
fxequals
94a8583eb1 added env 2025-07-19 12:12:40 -04:00
fxequals
2b189b1198 initial commit (needs update) 2025-07-19 12:08:00 -04:00
fxequals
b927ddeb16 added more apps 2025-07-19 11:04:52 -04:00
fxequals
03e778791e minor updates 2025-07-19 11:02:08 -04:00
fxequals
50460e0d32 updated name and desc 2025-07-19 10:47:27 -04:00
fxequals
f591b1e314 minor update 2025-07-19 09:43:46 -04:00
fxequals
e47eb1e882 minor update 2025-07-19 09:42:35 -04:00
fxequals
13fd6374bf minor update 2025-07-19 09:41:37 -04:00
fxequals
ee28328f3d updated warnings 2025-07-19 09:40:16 -04:00
fxequals
09f604a923 removed horizontal bars 2025-07-19 09:34:06 -04:00
fxequals
f4fbeadcdc added command to generate secrets 2025-07-19 09:31:05 -04:00
fxequals
4d37cac9dc rename 2025-07-19 09:27:43 -04:00
fxequals
b409f88647 update env 2025-07-19 09:20:12 -04:00
fxequals
0f9eeee617 minor edit 2025-07-19 08:53:50 -04:00
fxequals
14d08d935d renames 2025-07-19 08:52:43 -04:00
fxequals
82891e578b update env and doc 2025-07-19 08:50:29 -04:00
fxequals
d239c17640 rename 2025-07-19 08:49:50 -04:00
fxequals
c3dd28f2db minor edits 2025-07-19 08:47:11 -04:00
fxequals
7007701233 rename 2025-07-19 08:45:10 -04:00
fxequals
9cfc260b23 updated env 2025-07-19 08:40:50 -04:00
fxequals
fd2a996782 rename 2025-07-19 08:40:01 -04:00
fxequals
973bb0890d updated env 2025-07-19 08:37:16 -04:00
fxequals
bde5b91949 rename 2025-07-19 08:34:57 -04:00
fxequals
d6ac52a0d5 added doc url 2025-07-19 08:30:51 -04:00
fxequals
c2ced79097 initial commit 2025-07-19 08:29:27 -04:00
fxequals
aa1ea2a855 updated env 2025-07-19 08:27:08 -04:00
fxequals
26826913a3 rename 2025-07-19 08:26:27 -04:00
fxequals
f0cf7d7acd added env 2025-07-19 08:23:15 -04:00
fxequals
4777ba1ef4 rename 2025-07-19 08:22:42 -04:00
fxequals
cf76758646 initial commit 2025-07-19 08:21:57 -04:00
fxequals
382cce92b5 update location 2025-07-19 08:17:50 -04:00
fxequals
6df450cf41 inital commit 2025-07-19 08:17:15 -04:00
fxequals
dbc5ae00d0 inital commit 2025-07-19 07:45:57 -04:00
fxequals
30fe50f1da updated path 2025-07-19 07:33:06 -04:00
fxequals
a958515f3b minor updates 2025-07-19 07:31:31 -04:00
fxequals
f8c862cb7f Added notes for API key 2025-07-14 21:13:29 -04:00
fxequals
7f29ec6104 minor update 2025-07-14 20:21:25 -04:00
59 changed files with 898 additions and 8 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.vscode/

View File

@@ -0,0 +1,103 @@
{
"$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"
],
"updated_at": "2025-07-13T13:32:00Z",
"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"
],
"updated_at": "2025-07-13T13:31:00Z",
"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"
],
"updated_at": "2025-07-13T13:31:00Z",
"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"
],
"updated_at": "2025-07-13T13:31:00Z",
"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"
],
"updated_at": "2025-07-13T13:31:00Z",
"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"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
}
],
"url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/emerald-theory",
"version": "1.0.0"
}

View File

@@ -0,0 +1 @@
SESSION_SECRET=

View File

@@ -0,0 +1,38 @@
---
# Arcane
# Modern Docker Web UI
# Created by arcane
# ↳ https://github.com/ofkm/arcane
services:
arcane:
image: ghcr.io/ofkm/arcane:latest
container_name: arcane
restart: unless-stopped
networks:
- proxy
# ports:
# - 3000:3000
environment:
PUID: 1000
PGID: 1000
APP_ENV: "production"
PUBLIC_SESSION_SECRET: ${SESSION_SECRET} # openssl rand -base64 32
# Optional: Set if Docker access fails
# DOCKER_GID: 998
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/stacks:/opt/stacks:ro # Import existing stacks from Dockge
networks:
proxy:
external: true
# Documentation available at https://arcane.ofkm.dev/

View 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`

View 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=

View File

@@ -0,0 +1 @@
DB_PASSWORD=

View File

@@ -0,0 +1,43 @@
---
# Chevereto
# Self-hosted Imgur clone
# Created by
# ↳ https://github.com/chevereto/docker
services:
chevereto:
image: ghcr.io/chevereto/chevereto:latest
container_name: chevereto
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
CHEVERETO_MAX_UPLOAD_SIZE: 1G
CHEVERETO_MAX_POST_SIZE: 1G
CHEVERETO_DB_NAME: chevereto
CHEVERETO_DB_PORT: 3306
CHEVERETO_DB_PASS: ${DB_PASSWORD}
CHEVERETO_DB_USER: chevereto
CHEVERETO_DB_HOST: database
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- chevereto-data:/var/www/html/images
networks:
proxy:
external: true
volumes:
chevereto-data:
driver: local
# Documentation available at https://v4-docs.chevereto.com/#install

View File

View 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

View File

@@ -0,0 +1,3 @@
DOMAIN_NAME=
SUBDOMAIN=
GENERIC_TIMEZONE=America/New_York

View 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/

View File

@@ -0,0 +1 @@
# Overview

View File

@@ -0,0 +1,2 @@
DB_USER=
DB_PASS=

View File

@@ -0,0 +1,52 @@
---
# Wiki.js
# Wikipedia style documentation
# Created by wiki.js
# ↳ https://link.to.github
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
volumes:
- /home/fxequals/docker/wiki-js/database:/var/lib/postgresql/data
networks:
proxy:
external: true
# Documentation available at https://docs.requarks.io/

View File

@@ -0,0 +1,202 @@
{
"$schema": "https://templates.arcane.ofkm.dev/schema.json",
"name": "obsidian-logic",
"description": "docker apps for obsidian-logic",
"version": "1.0.0",
"author": "fxequals",
"url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic",
"templates": [
{
"id": "arcane",
"name": "Arcane",
"description": "Web based Docker GUI",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/arcane/arcane.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/arcane/arcane.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/arcane/",
"tags": ["docker", "container", "management"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "authentik",
"name": "Authentik",
"description": "2FA access & authorization",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/authentik/",
"tags": ["identity", "2fa", "access"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "dozzle",
"name": "Dozzle",
"description": "Docker Logs Web GUI",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/dozzle/",
"tags": ["gui", "logs", "docker"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "fresh-rss",
"name": "FreshRSS",
"description": "RSS Feed Aggregation",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fresh-rss/",
"tags": ["rss", "feeds", "aggregiator"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "fulltext-rss",
"name": "Full-Text RSS",
"description": "RSS Feed Article Expansion",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fulltext-rss/",
"tags": ["feeds", "text", "rss"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "gitea",
"name": "Gitea",
"description": "Github Alternative",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/gitea/",
"tags": ["code", "repository", "github"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "goaccess",
"name": "GoAccess",
"description": "NGINX Log Visualizer",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/goaccess/",
"tags": ["nginx", "logs", "visualizer"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "homepage",
"name": "Homepage",
"description": "Dashboard for Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/homepage/",
"tags": ["bookmarks", "landing-page", "dashboard"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "nginx-proxy-manager",
"name": "NGINX Proxy Manager",
"description": "Reverse Proxy for Web Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/nginx-proxy-manager/",
"tags": ["web", "reverse-proxy", "proxy"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "privatebin",
"name": "Privatebin",
"description": "Zero Knowledge Messaging",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/privatebin/",
"tags": ["web", "reverse-proxy", "proxy"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "remotely",
"name": "Remotely",
"description": "Remote Access Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/remotely/",
"tags": ["access", "web", "remote"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "shlinks",
"name": "Shlinks",
"description": "URL Shortening Service",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/shlinks/",
"tags": ["url", "shortener", "service"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "spdf",
"name": "sPDF",
"description": "Various PDF Tools",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/spdf/",
"tags": ["pdf", "web", "tools"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "vaultwarden",
"name": "VaultWarden",
"description": "Password Manager",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/vaultwarden/",
"tags": ["password", "manager", "bitwarden"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "watchtower",
"name": "WatchTower",
"description": "Auto Docker Image Updater",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/watchtower/",
"tags": ["updater", "images", "docker"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "wordpress",
"name": "WordPress",
"description": "Hosted CMS Website",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/wordpress/",
"tags": ["web", "website", "cms"],
"updated_at": "2025-07-13T13:31:00Z"
}
]
}

View File

@@ -0,0 +1,3 @@
# Overview
On first run, default user is `arcane` and password is `arcane-admin`

View File

@@ -0,0 +1 @@
SESSION_SECRET=

View File

@@ -0,0 +1,38 @@
---
# Arcane
# Modern Docker Web UI
# Created by arcane
# ↳ https://github.com/ofkm/arcane
services:
arcane:
image: ghcr.io/ofkm/arcane:latest
container_name: arcane
restart: unless-stopped
networks:
- proxy
# ports:
# - 3000:3000
environment:
PUID: 1000
PGID: 1000
APP_ENV: "production"
PUBLIC_SESSION_SECRET: ${SESSION_SECRET} # openssl rand -base64 32
# Optional: Set if Docker access fails
# DOCKER_GID: 998
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/stacks:/opt/stacks:ro # Import existing stacks from Dockge
networks:
proxy:
external: true
# Documentation available at https://arcane.ofkm.dev/

View File

@@ -0,0 +1,13 @@
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=

View File

View File

View File

View File

@@ -13,8 +13,8 @@ services:
networks: networks:
- proxy - proxy
ports: # ports:
- 2222:22 # - 2222:22 <--- maps a unique SSH port for SSH pushes
environment: environment:
PUID: 1000 PUID: 1000

View File

View File

@@ -1,7 +1,7 @@
--- ---
# GoAccess # GoAccess
# Web based log visualizer # Web based log visualizer for NGINX Proxy Manager
# Created by xavierh # Created by xavierh
# ↳ https://github.com/allinurl/goaccess # ↳ https://github.com/allinurl/goaccess

View File

View File

@@ -0,0 +1,31 @@
---
# IT Tools
# Collection of various IT tools
# Created by CorentinTh
# ↳ https://github.com/CorentinTh/it-tools
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
proxy:
external: true
# Documentation available at https://github.com/CorentinTh/it-tools

View File

View File

@@ -0,0 +1 @@
DOCKERGW=

View File

@@ -22,7 +22,7 @@ services:
ASPNETCORE_ENVIRONMENT: 'Production' ASPNETCORE_ENVIRONMENT: 'Production'
ASPNETCORE_HTTP_PORTS: 5000 ASPNETCORE_HTTP_PORTS: 5000
Remotely_ApplicationOptions__DbProvider: 'SQLite' Remotely_ApplicationOptions__DbProvider: 'SQLite'
Remotely_ApplicationOptions__DockerGateway: '172.18.0.1' Remotely_ApplicationOptions__DockerGateway: ${DOCKER_GW}
Remotely_ConnectionStrings__SQLite=Data Source: /app/AppData/Remotely.db Remotely_ConnectionStrings__SQLite=Data Source: /app/AppData/Remotely.db
volumes: volumes:

View File

View File

@@ -0,0 +1,61 @@
---
# SearXNG
# Privacy Focused Search Engine
# Created by Searxng
# ↳ https://github.com/searxng/searxng
services:
searxng-server:
image: docker.io/searxng/searxng:latest
container_name: searxng
restart: unless-stopped
networks:
- search
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/searxng/search:/etc/searxng:rw
searxng-redis:
image: docker.io/valkey/valkey:8-alpine
container_name: redis
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
networks:
- search
environment:
PUID: 1000
PGID: 1000
volumes:
- /home/fxequals/docker/searsng/redis:/data
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
search:
external: true
# Documentation available at https://docs.searxng.org/

View File

View File

@@ -7,7 +7,7 @@
services: services:
shlink-server: shlink-server:
image: shlinkio/shlink:latest image: ghcr.io/shlinkio/shlink:latest
container_name: shlink container_name: shlink
restart: unless-stopped restart: unless-stopped
@@ -29,7 +29,7 @@ services:
- /home/fxequals/docker/shlink/data:/data - /home/fxequals/docker/shlink/data:/data
shlink-web-client: shlink-web-client:
image: shlinkio/shlink-web-client image: ghcr.io/shlinkio/shlink-web-client:latest
container_name: shlink-web-client container_name: shlink-web-client
restart: unless-stopped restart: unless-stopped
@@ -40,10 +40,18 @@ services:
PUID: 1000 PUID: 1000
PGID: 1000 PGID: 1000
SHLINK_SERVER_URL: 'https://shlinks.mydomain.net' SHLINK_SERVER_URL: 'https://shlinks.mydomain.net'
SHLINK_SERVER_API_KEY: ${API_KEY} # <-- See Documentation # SHLINK_SERVER_API_KEY: <--- See Notes
networks: networks:
proxy: proxy:
external: true external: true
# Documentation available at https://shlink.io/documentation/install-docker-image/ # Documentation available at https://shlink.io/documentation/install-docker-image/
# Notes
#
# Create and start container
# Run docker exec -it <SHLINK_CONTAINER_ID> shlink api-key:generate
# Copy key and go to Servers - Manage Servers - Click 3 dot menu - Edit
# Paste API key
#

View File

View File

View File

@@ -0,0 +1,8 @@
WATCHTOWER_NOTIFICATION_EMAIL_FROM=
WATCHTOWER_NOTIFICATION_EMAIL_TO=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=25
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=
WATCHTOWER_NOTIFICATION_EMAIL_DELAY=3
WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG=

View File

@@ -26,6 +26,7 @@ services:
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER} WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER}
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD} WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD}
WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 3 WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 3
WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG: ${WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG}
volumes: volumes:
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro

View File

@@ -0,0 +1,3 @@
DB_USER=
DB_PASS=
DB_ROOT=