initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.vscode/
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# docker-compose
|
||||
|
||||
Collection of my personal docker-compose files
|
||||
41
TEMPLATE-docker-compose.yml
Normal file
41
TEMPLATE-docker-compose.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
|
||||
# <REPLACE_NAME>
|
||||
# <DESCRIPTION>
|
||||
# Created by <APP_CREATOR_NAME>
|
||||
# ↳ https://link.to.github
|
||||
|
||||
services:
|
||||
<REPLACE_NAME>:
|
||||
image: # creator/image_name:latest
|
||||
container_name: <REPLACE_NAME>
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
# - /path/to/host:path/in/container
|
||||
# - unique_volume_name:/path/in/container
|
||||
|
||||
# labels:
|
||||
# - 'enabled=true'
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
# ip_address: 127.0.0.1
|
||||
|
||||
# volumes:
|
||||
# unique_volume_name:
|
||||
# driver: local
|
||||
|
||||
# Documentation available at https://link.to.docs
|
||||
40
commits.md
Normal file
40
commits.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 📝 Commit Messages
|
||||
|
||||
We follow the [Conventional Commits](https://www.conventionalcommits.org/) guideline for commit messages.
|
||||
This helps keep our history clean and makes changelogs easier to generate.
|
||||
|
||||
# Format
|
||||
|
||||
```
|
||||
<type>(optional scope): <description>
|
||||
```
|
||||
|
||||
# Examples
|
||||
|
||||
```
|
||||
feat(auth): add OAuth2 login
|
||||
fix(ui): patch crash on empty input
|
||||
docs(readme): update installation instructions
|
||||
```
|
||||
|
||||
# Common Types
|
||||
|
||||
* **feat:** a new feature (may bump MINOR version)
|
||||
* **fix:** a bug fix (may bump PATCH version)
|
||||
* **docs:** documentation only
|
||||
* **style:** formatting, whitespace, etc.
|
||||
* **refactor:** code changes without behavior change
|
||||
* **test:** add or update tests
|
||||
* **chore:** maintenance (CI, build, tooling, assets)
|
||||
|
||||
👉 If your change introduces a **breaking change**, mark it with `!` or add a footer:
|
||||
|
||||
```
|
||||
feat(api)!: remove legacy endpoint
|
||||
|
||||
BREAKING CHANGE: old /v1 endpoints were removed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
⚠️ **Note:** This is a guideline, not a strict rule. If you forget, no worries — just try to follow the format when you can
|
||||
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/
|
||||
35
obsidian-logic/_UNUSED/dockge/docker-compose.yml
Normal file
35
obsidian-logic/_UNUSED/dockge/docker-compose.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
# Dockge
|
||||
# Modern docker-compose file manager
|
||||
# Created by louislam
|
||||
# ↳ https://github.com/louislam/dockge
|
||||
|
||||
services:
|
||||
dockge:
|
||||
image: louislam/dockge:latest
|
||||
container_name: dockge
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 5001:5001
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
DOCKGE_STACKS_DIR: "/opt/dockge/stacks"
|
||||
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /opt/dockge/stacks:/opt/dockge/stacks
|
||||
- ./data:/app/data
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/louislam/dockge
|
||||
32
obsidian-logic/_UNUSED/uptime-kuma/docker-compose.yml
Normal file
32
obsidian-logic/_UNUSED/uptime-kuma/docker-compose.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# Uptime Kuma
|
||||
# Web based status monitoring
|
||||
# Created by Louise Lam
|
||||
# ↳ https://github.com/louislam/uptime-kuma
|
||||
|
||||
services:
|
||||
uptime-kuma:
|
||||
image: louislam/uptime-kuma:latest
|
||||
container_name: uptime-kuma
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3001:3001
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/uptime-kuma/data:/app/data
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/louislam/uptime-kuma/wiki
|
||||
186
obsidian-logic/arcane-registry.json
Normal file
186
obsidian-logic/arcane-registry.json
Normal file
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/getarcaneapp/templates/refs/heads/main/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": "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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"id": "romm",
|
||||
"name": "RomM",
|
||||
"description": "Web GUI for managing and playing Roms",
|
||||
"version": "1.0.0",
|
||||
"author": "fxequals",
|
||||
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.yml",
|
||||
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.env",
|
||||
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/romm/",
|
||||
"tags": ["roms", "gui", "web-based"]
|
||||
}
|
||||
]
|
||||
}
|
||||
3
obsidian-logic/arcane/README.md
Normal file
3
obsidian-logic/arcane/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Overview
|
||||
|
||||
On first run, default user is `arcane` and password is `arcane-admin`
|
||||
2
obsidian-logic/arcane/arcane.env
Normal file
2
obsidian-logic/arcane/arcane.env
Normal file
@@ -0,0 +1,2 @@
|
||||
ENCRYPTION_KEY=
|
||||
JWT_SECRET=
|
||||
49
obsidian-logic/arcane/arcane.yml
Normal file
49
obsidian-logic/arcane/arcane.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
|
||||
# Arcane
|
||||
# Modern Docker Web UI
|
||||
# Created by arcane
|
||||
# ↳ 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
|
||||
13
obsidian-logic/authentik/authentik.env
Normal file
13
obsidian-logic/authentik/authentik.env
Normal 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=
|
||||
132
obsidian-logic/authentik/authentik.yml
Normal file
132
obsidian-logic/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
|
||||
0
obsidian-logic/dozzle/dozzle.env
Normal file
0
obsidian-logic/dozzle/dozzle.env
Normal file
32
obsidian-logic/dozzle/dozzle.yml
Normal file
32
obsidian-logic/dozzle/dozzle.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# Dozzle
|
||||
# Log viewer for Docker containers
|
||||
# Created by amir20
|
||||
# ↳ https://github.com/amir20/dozzle
|
||||
|
||||
services:
|
||||
dozzle:
|
||||
image: amir20/dozzle:latest
|
||||
container_name: dozzle
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://dozzle.dev/
|
||||
0
obsidian-logic/emulator-js/emulator-js.env
Normal file
0
obsidian-logic/emulator-js/emulator-js.env
Normal file
35
obsidian-logic/emulator-js/emulator-js.yml
Normal file
35
obsidian-logic/emulator-js/emulator-js.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
# EmulatorJS
|
||||
# Retro game emulation in the web browser
|
||||
# Created by michael-j-green
|
||||
# ↳ https://github.com/EmulatorJS/EmulatorJS
|
||||
|
||||
services:
|
||||
emulator-js:
|
||||
image: lscr.io/linuxserver/emulatorjs:latest
|
||||
container_name: emulator-js
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
# - 3000:3000
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/emulator-js/config:/config
|
||||
- /home/fxequals/docker/emulator-js/data:/data
|
||||
- /home/fxequals/docker/emulator-js/
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://emulatorjs.org/docs
|
||||
0
obsidian-logic/fresh-rss/fresh-rss.env
Normal file
0
obsidian-logic/fresh-rss/fresh-rss.env
Normal file
34
obsidian-logic/fresh-rss/fresh-rss.yml
Normal file
34
obsidian-logic/fresh-rss/fresh-rss.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
|
||||
# FreshRSS
|
||||
# An RSS aggregator app
|
||||
# Created by
|
||||
# ↳ https://github.com/FreshRSS/FreshRSS
|
||||
|
||||
services:
|
||||
fresh-rss:
|
||||
image: freshrss/freshrss:latest
|
||||
container_name: fresh-rss
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
CRON_MIN: '13,43' # Specifies Feed Update Time
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/fresh-rss/data:/var/www/FreshRSS/data
|
||||
- /home/fxequals/docker/fresh-rss/extensions:/var/www/FreshRss/extensions
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://freshrss.github.io/FreshRSS/en/admins/01_Index.html
|
||||
0
obsidian-logic/fulltext-rss/fulltext-rss.env
Normal file
0
obsidian-logic/fulltext-rss/fulltext-rss.env
Normal file
32
obsidian-logic/fulltext-rss/fulltext-rss.yml
Normal file
32
obsidian-logic/fulltext-rss/fulltext-rss.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# Full Text RSS
|
||||
# Converts RSS feed snipits into full text articles
|
||||
# Created by Five Filters
|
||||
# ↳ https://github.com/heussd/fivefilters-full-text-rss-docker
|
||||
|
||||
services:
|
||||
full-text-rss:
|
||||
image: heussd/fivefilters-full-text-rss:latest
|
||||
container_name: full-text-rss
|
||||
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/full-text-rss/cache:/var/www/html/cache/rss
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/heussd/fivefilters-full-text-rss-docker
|
||||
0
obsidian-logic/gitea/gitea.env
Normal file
0
obsidian-logic/gitea/gitea.env
Normal file
33
obsidian-logic/gitea/gitea.yml
Normal file
33
obsidian-logic/gitea/gitea.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
|
||||
# Gitea
|
||||
# Open-source Github alternative
|
||||
# Gitea
|
||||
# ↳ https://github.com/go-gitea/gitea
|
||||
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 22:22
|
||||
# - 3000:3000
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/gitea:/data
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://docs.gitea.com/
|
||||
0
obsidian-logic/goaccess/goaccess.env
Normal file
0
obsidian-logic/goaccess/goaccess.env
Normal file
34
obsidian-logic/goaccess/goaccess.yml
Normal file
34
obsidian-logic/goaccess/goaccess.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
|
||||
# GoAccess
|
||||
# Web based log visualizer for NGINX Proxy Manager
|
||||
# Created by xavierh
|
||||
# ↳ https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager
|
||||
|
||||
services:
|
||||
goaccess:
|
||||
image: xavierh/goaccess-for-nginxproxymanager:latest
|
||||
container_name: goaccess
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 7880:7880
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
HTML_REFRESH: 5
|
||||
EXCLUDE_IPS: '172.18.0.1'
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/nginx/data/logs:/opt/log
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://goaccess.io/man
|
||||
33
obsidian-logic/homepage/docker-compose.yml
Normal file
33
obsidian-logic/homepage/docker-compose.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
|
||||
# Homepage
|
||||
# A dashboard for your self-hosted environment
|
||||
# Created by
|
||||
# ↳ https://github.com/gethomepage/homepage
|
||||
|
||||
services:
|
||||
homepage:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3000:3000
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/homepage/config:/app/config
|
||||
- /home/fxequals/docker/homepage/images:/app/public/images
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://gethomepage.dev/
|
||||
0
obsidian-logic/it-tools/it-tools.env
Normal file
0
obsidian-logic/it-tools/it-tools.env
Normal file
31
obsidian-logic/it-tools/it-tools.yml
Normal file
31
obsidian-logic/it-tools/it-tools.yml
Normal 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
|
||||
54
obsidian-logic/matrix/homeserver.yaml
Normal file
54
obsidian-logic/matrix/homeserver.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
# Configuration file for Synapse.
|
||||
#
|
||||
# This is a YAML file: see [1] for a quick introduction. Note in particular
|
||||
# that *indentation is important*: all the elements of a list or dictionary
|
||||
# should have the same indentation.
|
||||
#
|
||||
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
|
||||
#
|
||||
# For more information on how to configure Synapse, including a complete accounting of
|
||||
# each option, go to docs/usage/configuration/config_documentation.md or
|
||||
# https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
|
||||
server_name: "mydigitalfix.com"
|
||||
pid_file: /data/homeserver.pid
|
||||
listeners:
|
||||
- port: 8008
|
||||
resources:
|
||||
- compress: false
|
||||
names:
|
||||
- client
|
||||
- federation
|
||||
tls: false
|
||||
type: http
|
||||
x_forwarded: true
|
||||
database:
|
||||
name: psycopg2
|
||||
txn_limit: 10000
|
||||
args:
|
||||
user: synapse
|
||||
password:
|
||||
database: synapse
|
||||
host: synapse-db
|
||||
port: 5432
|
||||
cp_min: 5
|
||||
cp_max: 10
|
||||
log_config: "/data/mydigitalfix.log.config"
|
||||
media_store_path: /data/media_store
|
||||
registration_shared_secret:
|
||||
report_stats: true
|
||||
macaroon_secret_key:
|
||||
form_secret:
|
||||
signing_key_path: "/data/mydigitalfix.signing.key"
|
||||
trusted_key_servers:
|
||||
- server_name: "matrix.org"
|
||||
turn_uris:
|
||||
- "turn:matrix.mydigitalfix:3478?transport=udp"
|
||||
- "turn:matrix.mydigitalfix:3478?transport=tcp"
|
||||
- "turns:matrix.mydigitalfix:3478?transport=udp"
|
||||
- "turns:matrix.mydigitalfix:3478?transport=tcp"
|
||||
turn_shared_secret:
|
||||
turn_user_lifetime: 86400000
|
||||
turn_allow_guests: False
|
||||
|
||||
|
||||
# vim:ft=yaml
|
||||
1
obsidian-logic/matrix/matrix.env
Normal file
1
obsidian-logic/matrix/matrix.env
Normal file
@@ -0,0 +1 @@
|
||||
POSTGRES_PASSWORD=
|
||||
111
obsidian-logic/matrix/matrix.yml
Normal file
111
obsidian-logic/matrix/matrix.yml
Normal file
@@ -0,0 +1,111 @@
|
||||
---
|
||||
|
||||
# Matrix
|
||||
# Privacy focused messaging platform
|
||||
# Created by matrix.org
|
||||
# ↳ https://github.com/matrix-org
|
||||
|
||||
services:
|
||||
synapse:
|
||||
image: docker.io/matrixdotorg/synapse:latest
|
||||
container_name: matrix-synapse
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- synapse_db
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml"
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- synapse-data:/data
|
||||
|
||||
synapse_db:
|
||||
image: docker.io/postgres:17.5
|
||||
container_name: matrix-db
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
POSTGRES_USER: "synapse"
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- synapse-db:/var/lib/postgresql/data
|
||||
|
||||
nginx:
|
||||
image: nginx:stable
|
||||
container_name: matrix-web
|
||||
restart: "always"
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
# - 443:443
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- matrix-nginx:/etc/nginx/conf.d
|
||||
|
||||
coturn:
|
||||
image: instrumentisto/coturn:latest
|
||||
container_name: matrix-coturn
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 49160-49200:49160-49200/udp
|
||||
# - 3478:3478
|
||||
# - 5349:5349
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- matrix-coturn:/etc/coturn
|
||||
|
||||
element:
|
||||
image: vectorim/element-web:latest
|
||||
container_name: matrix-element
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- matrix-element:/app
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
synapse-data:
|
||||
driver: local
|
||||
|
||||
synapse-db:
|
||||
driver: local
|
||||
|
||||
matrix-nginx:
|
||||
driver: local
|
||||
|
||||
matrix-element:
|
||||
driver: local
|
||||
|
||||
matrix-coturn:
|
||||
driver: local
|
||||
|
||||
# Documentation available at https://matrix.org/docs/chat_basics/matrix-for-im/
|
||||
11
obsidian-logic/matrix/turnserver.conf
Normal file
11
obsidian-logic/matrix/turnserver.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
use-auth-secret
|
||||
static-auth-secret=
|
||||
realm=matrix.mydigitalfix.com
|
||||
listening-port=3478
|
||||
tls-listening-port=5349
|
||||
min-port=49160
|
||||
max-port=49200
|
||||
verbose
|
||||
allow-loopback-peers
|
||||
cli-password=
|
||||
external-ip=97.107.140.166
|
||||
35
obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.yml
Normal file
35
obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
# NGINX Proxy Manager
|
||||
# A reverse proxy for web apps
|
||||
# Created by Igor Sysoev
|
||||
# ↳ https://github.com/nginx/nginx
|
||||
|
||||
services:
|
||||
nginx:
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
container_name: nginx-proxy-manager
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
# - 81:81
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/nginx/data:/data
|
||||
- /home/fxequals/docker/nginx/letsencrypt:/etc/letsencrypt
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://nginxproxymanager.com/guide/
|
||||
0
obsidian-logic/privatebin/privatebin.env
Normal file
0
obsidian-logic/privatebin/privatebin.env
Normal file
32
obsidian-logic/privatebin/privatebin.yml
Normal file
32
obsidian-logic/privatebin/privatebin.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# PrivateBin
|
||||
# An opensource Pastebin zero-knowledge server
|
||||
# Created by Pastebin
|
||||
# ↳ https://github.com/PrivateBin/PrivateBin
|
||||
|
||||
services:
|
||||
privatebin:
|
||||
image: privatebin/nginx-fpm-alpine:latest
|
||||
container_name: privatebin
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/privatebin/data:/srv/data # sudo chown 65534:82 on host folder
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/PrivateBin/docker-nginx-fpm-alpine
|
||||
1
obsidian-logic/remotely/remotely.env
Normal file
1
obsidian-logic/remotely/remotely.env
Normal file
@@ -0,0 +1 @@
|
||||
DOCKERGW=
|
||||
37
obsidian-logic/remotely/remotely.yml
Normal file
37
obsidian-logic/remotely/remotely.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
|
||||
# Remotely
|
||||
# Web based remote access and support
|
||||
# Created by ?
|
||||
# ↳ https://github.com/immense/Remotely
|
||||
|
||||
services:
|
||||
remotely:
|
||||
image: immybot/remotely:latest
|
||||
container_name: remotely
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 5000:5000
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
ASPNETCORE_ENVIRONMENT: 'Production'
|
||||
ASPNETCORE_HTTP_PORTS: 5000
|
||||
Remotely_ApplicationOptions__DbProvider: 'SQLite'
|
||||
Remotely_ApplicationOptions__DockerGateway: ${DOCKER_GW}
|
||||
Remotely_ConnectionStrings__SQLite=Data Source: /app/AppData/Remotely.db
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/remotely/data:/app/AppData
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/immense/Remotely
|
||||
129
obsidian-logic/romm/config.yml
Normal file
129
obsidian-logic/romm/config.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
# This is a generic example of a configuration file
|
||||
# Rename this file to `config.yml`, copy it to a `config` folder, and mount that folder as per the docker-compose.example.yml
|
||||
# Only uncomment the lines you want to use/modify, or add new ones where needed
|
||||
|
||||
exclude:
|
||||
# Exclude platforms to be scanned
|
||||
platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2']
|
||||
|
||||
# Exclude roms or parts of roms to be scanned
|
||||
roms:
|
||||
# Single file games section.
|
||||
# Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
|
||||
single_file:
|
||||
# Exclude all files with certain extensions to be scanned
|
||||
extensions: [] # ['xml', 'txt']
|
||||
|
||||
# Exclude matched file names to be scanned.
|
||||
# Supports unix filename pattern matching
|
||||
# Can also exclude files by extension
|
||||
names: [] # ['info.txt', '._*', '*.nfo']
|
||||
|
||||
# Multi files games section
|
||||
# Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
|
||||
multi_file:
|
||||
# Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games)
|
||||
names: [] # ['my_multi_file_game', 'DLC']
|
||||
|
||||
# Exclude files within sub-folders.
|
||||
parts:
|
||||
# Exclude matched file names to be scanned from multi file roms
|
||||
# Keep in mind that RomM doesn't scan folders inside multi files games,
|
||||
# so there is no need to exclude folders from inside of multi files games.
|
||||
names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching
|
||||
|
||||
# Exclude all files with certain extensions to be scanned from multi file roms
|
||||
extensions: [] # ['xml', 'txt']
|
||||
|
||||
system:
|
||||
# Asociate different platform names to your current file system platform names
|
||||
# [your custom platform folder name]: [RomM platform name]
|
||||
# In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder
|
||||
platforms: {} # { gc: 'ngc', psx: 'ps' }
|
||||
|
||||
# Asociate one platform to it's main version
|
||||
versions: {} # { naomi: 'arcade' }
|
||||
|
||||
# The folder name where your roms are located
|
||||
filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder
|
||||
|
||||
# scan:
|
||||
# # Metadata priority during scans
|
||||
# priority:
|
||||
# # Below are the default priority values used
|
||||
# metadata: # Top-level metadata source priority
|
||||
# - "igdb" # IGDB (highest priority)
|
||||
# - "moby" # MobyGames
|
||||
# - "ss" # Screenscraper
|
||||
# - "ra" # RetroAchievements
|
||||
# - "launchbox" # Launchbox
|
||||
# - "gamelist" # ES-DE gamelist.xml
|
||||
# - "hasheous" # Hasheous
|
||||
# - "flashpoint" # Flashpoint Project
|
||||
# - "hltb" # HowLongToBeat (lowest priority)
|
||||
# artwork: # Cover art and screenshots
|
||||
# - "igdb" # IGDB
|
||||
# - "moby" # MobyGames
|
||||
# - "ss" # Screenscraper
|
||||
# - "ra" # RetroAchievements
|
||||
# - "launchbox" # Launchbox
|
||||
# - "gamelist" # ES-DE gamelist.xml
|
||||
# - "hasheous" # Hasheous
|
||||
# - "flashpoint" # Flashpoint Project
|
||||
# - "hltb" # HowLongToBeat
|
||||
# region: # Used by IGDB and ScreenScraper for regional variants
|
||||
# - "us"
|
||||
# - "wor"
|
||||
# - "ss"
|
||||
# - "eu"
|
||||
# - "jp"
|
||||
# language: # Used by ScreenScraper for descriptions
|
||||
# - "en"
|
||||
# - "fr"
|
||||
# # Media assets to download
|
||||
# # Only used by Screenscraper and ES-DE gamelist.xml
|
||||
# media:
|
||||
# # Used as alternative cover art
|
||||
# - box2d # Normal cover art (always enabled)
|
||||
# - box3d # 3D box art
|
||||
# - miximage # Mixed image of multiple media
|
||||
# - physical # Disc, cartridge, etc.
|
||||
# # Added to the screenshots carousel
|
||||
# - screenshot # Screenshot (enabled by default)
|
||||
# - title_screen # Title screen
|
||||
# - fanart # User uploaded artwork
|
||||
# # Bezel displayed around the emulatorjs window
|
||||
# - bezel
|
||||
# # Manual in PDF format
|
||||
# - manual # Manual (enabled by default)
|
||||
# # Gameplay video
|
||||
# - video # Video (warning: large file size)
|
||||
# # Media used for batocera gamelist.xml export
|
||||
# - box2d_back # Back cover art
|
||||
# - logo # Transparent logo
|
||||
# # Other media assets (might be used in the future)
|
||||
# - marquee # Custom marquee
|
||||
|
||||
EmulatorJS per-core options
|
||||
emulatorjs:
|
||||
debug: true # Available options will be logged to the browser console
|
||||
cache_limit: null # Cache limit per ROM (in bytes)
|
||||
settings:
|
||||
parallel_n64: # Use the exact core name
|
||||
vsync: disabled
|
||||
snes9x:
|
||||
snes9x_region: ntsc
|
||||
default: # These settings apply to all cores
|
||||
fps: show
|
||||
controls: # https://emulatorjs.org/docs4devs/control-mapping/
|
||||
snes9x:
|
||||
0: # Player 1
|
||||
0: # A MAPPING FOR EACH BUTTON MUST BE SET!
|
||||
value: x # Mapping for keyboard
|
||||
value2: BUTTON_2 # Mapping for connected controller
|
||||
1:
|
||||
value:
|
||||
value2:
|
||||
1: # Player 2
|
||||
2: # Player 3
|
||||
3: # Player 4
|
||||
12
obsidian-logic/romm/romm.env
Normal file
12
obsidian-logic/romm/romm.env
Normal file
@@ -0,0 +1,12 @@
|
||||
DB_ROOTPWD=
|
||||
DB_HOST=
|
||||
DB_NAME=
|
||||
DB_USER=
|
||||
DB_PASSWD=
|
||||
ROMM_AUTH_SECRET_KEY=
|
||||
RETROACHIEVEMENTS_API_KEY=
|
||||
STEAMGRIDDB_API_KEY=
|
||||
IGDB_CLIENT_ID=
|
||||
IGDB_CLIENT_SECRET=
|
||||
SCREENSCRAPER_USER=
|
||||
SCREENSCRAPER_PASSWORD=
|
||||
77
obsidian-logic/romm/romm.yml
Normal file
77
obsidian-logic/romm/romm.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
|
||||
# RomM
|
||||
# Web based rom player and manager
|
||||
# Created by gantoine
|
||||
# ↳ https://github.com/rommapp/romm
|
||||
|
||||
services:
|
||||
romm:
|
||||
image: rommapp/romm:latest
|
||||
container_name: romm
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
DB_HOST: romm-db
|
||||
DB_NAME: ${DB_NAME}
|
||||
DB_USER: ${DB_USER}
|
||||
DB_PASSWD: ${DB_PASSWORD}
|
||||
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
|
||||
SCREENSCRAPER_USER: ${SCREENSCRAPER_USER}
|
||||
SCREENSCRAPER_PASSWORD: ${SCREENSCRAPER_PASSWORD}
|
||||
RETROACHIEVEMENTS_API_KEY: ${RETROACHIEVEMENTS_API_KEY}
|
||||
STEAMGRIDDB_API_KEY: ${STEAMGRIDDB_API_KEY}
|
||||
IGDB_CLIENT_ID: ${IGDB_CLIENT_ID}
|
||||
IGDB_CLIENT_SECRET: ${IGDB_CLIENT_SECRET}
|
||||
HASHEOUS_API_ENABLED: true
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/romm/romm_resources:/romm/resources
|
||||
- /home/fxequals/docker/romm/romm_redis:/redis-data
|
||||
- /home/fxequals/docker/romm/roms:/romm/library
|
||||
- /home/fxequals/docker/romm:/romm/config
|
||||
- /home/fxequals/docker/romm/assets:/romm/assets
|
||||
|
||||
romm-db:
|
||||
image: mariadb:latest
|
||||
container_name: romm-db
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: ${DB_ROOTPWD}
|
||||
MARIADB_DATABASE: ${DB_NAME}
|
||||
MARIADB_USER: ${DB_USER}
|
||||
MARIADB_PASSWORD: ${DB_PASSWORD}
|
||||
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
start_period: 30s
|
||||
start_interval: 10s
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
||||
driver: local
|
||||
|
||||
# Documentation available at https://docs.romm.app/latest/
|
||||
0
obsidian-logic/searx/searx.env
Normal file
0
obsidian-logic/searx/searx.env
Normal file
61
obsidian-logic/searx/searx.yml
Normal file
61
obsidian-logic/searx/searx.yml
Normal 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/
|
||||
0
obsidian-logic/shlinks/shlinks.env
Normal file
0
obsidian-logic/shlinks/shlinks.env
Normal file
57
obsidian-logic/shlinks/shlinks.yml
Normal file
57
obsidian-logic/shlinks/shlinks.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
|
||||
# Shlink
|
||||
# Web link URL shortener
|
||||
# Created by Alejandro Celaya
|
||||
# ↳ https://github.com/shlinkio/shlink
|
||||
|
||||
services:
|
||||
shlink-server:
|
||||
image: ghcr.io/shlinkio/shlink:latest
|
||||
container_name: shlink
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
DEFAULT_DOMAIN: 'links.mydomain.net'
|
||||
IS_HTTPS_ENABLED: false
|
||||
GEOLITE_LICENSE_KEY: ${GEO_KEY}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/shlink/data:/data
|
||||
|
||||
shlink-web-client:
|
||||
image: ghcr.io/shlinkio/shlink-web-client:latest
|
||||
container_name: shlink-web-client
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
SHLINK_SERVER_URL: 'https://shlinks.mydomain.net'
|
||||
# SHLINK_SERVER_API_KEY: <--- See Notes
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# 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
|
||||
#
|
||||
0
obsidian-logic/spdf/spdf.env
Normal file
0
obsidian-logic/spdf/spdf.env
Normal file
32
obsidian-logic/spdf/spdf.yml
Normal file
32
obsidian-logic/spdf/spdf.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# sPDF
|
||||
# Self-hosted suite of PDF tools
|
||||
# Created by Stirling PDF
|
||||
# ↳ https://github.com/Stirling-Tools/Stirling-PDF
|
||||
|
||||
services:
|
||||
spdf:
|
||||
image: frooodle/s-pdf:latest
|
||||
container_name: spdf
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 8080:8080
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/spdf/configs:/configs
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://hub.docker.com/r/stirlingtools/stirling-pdf
|
||||
0
obsidian-logic/vaultwarden/vaultwarden.env
Normal file
0
obsidian-logic/vaultwarden/vaultwarden.env
Normal file
32
obsidian-logic/vaultwarden/vaultwarden.yml
Normal file
32
obsidian-logic/vaultwarden/vaultwarden.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
# Vaultwarden
|
||||
# Open-source Bitwarden password manager
|
||||
# Created by Daniel García
|
||||
# ↳ https://github.com/dani-garcia/vaultwarden
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
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/vaultwarden/data:/data
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://github.com/dani-garcia/vaultwarden/wiki
|
||||
0
obsidian-logic/watchtower/README.md
Normal file
0
obsidian-logic/watchtower/README.md
Normal file
8
obsidian-logic/watchtower/watchtower.env
Normal file
8
obsidian-logic/watchtower/watchtower.env
Normal 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=
|
||||
40
obsidian-logic/watchtower/watchtower.yml
Normal file
40
obsidian-logic/watchtower/watchtower.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
|
||||
# Watchtower
|
||||
# Docker Image Updater & Notifications
|
||||
# Created by containrrr
|
||||
# ↳ https://github.com/containrrr/watchtower
|
||||
|
||||
services:
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
container_name: watchtower
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
WATCHTOWER_MONITOR_ONLY: true
|
||||
WATCHTOWER_NOTIFICATIONS: email
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_FROM: ${WATCHTOWER_NOTIFICATION_EMAIL_FROM}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_TO: ${WATCHTOWER_NOTIFICATION_EMAIL_TO}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD}
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 3
|
||||
WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG: ${WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://containrrr.dev/watchtower/
|
||||
3
obsidian-logic/wordpress/wordpress.env
Normal file
3
obsidian-logic/wordpress/wordpress.env
Normal file
@@ -0,0 +1,3 @@
|
||||
DB_USER=
|
||||
DB_PASS=
|
||||
DB_ROOT=
|
||||
69
obsidian-logic/wordpress/wordpress.yml
Normal file
69
obsidian-logic/wordpress/wordpress.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
|
||||
# WordPress
|
||||
# Content Management System
|
||||
# Created by WordPress Foundation
|
||||
# ↳ https://github.com/WordPress
|
||||
|
||||
services:
|
||||
wordpress:
|
||||
image: docker.io/bitnami/wordpress:latest
|
||||
container_name: wordpress-server
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- wordpress-mariadb
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 80:80
|
||||
# - 443:443
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
WORDPRESS_DATABASE_HOST: 'wordpress-mariadb'
|
||||
WORDPRESS_DATABASE_USER: ${DB_USER}
|
||||
WORDPRESS_DATABASE_PASSWORD: ${DB_PASS}
|
||||
WORDPRESS_DATABASE_PORT_NUMBER: 3306
|
||||
WORDPRESS_DATABASE_NAME: 'wordpress'
|
||||
WORDPRESS_USERNAME: ${WP_USER}
|
||||
WORDPRESS_PASSWORD: ${WP_PASS}
|
||||
WORDPRESS_EMAIL: ${WP_EMAIL}
|
||||
WORDPRESS_FIRSTNAME: ${WP_FNAME}
|
||||
WORDPRESS_LASTNAME: ${WP_LNAME}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/wordpress/data:/bitnami/wordpress # sudo chown 1001 on host folder
|
||||
|
||||
wordpress-mariadb:
|
||||
image: docker.io/bitnami/mariadb:latest
|
||||
container_name: wordpress-mariadb
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
# ports:
|
||||
# - 3306:3306
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
ALLOW_EMPTY_PASSWORD: no
|
||||
MARIADB_USER: ${DB_USER}
|
||||
MARIADB_PASSWORD: ${DB_PASS}
|
||||
MARIADB_DATABASE: wordpress
|
||||
MARIADB_ROOT_PASSWORD: ${DB_ROOT}
|
||||
|
||||
volumes:
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /home/fxequals/docker/wordpress/database:/bitnami/mariadb # sudo chown 1001 on host folder
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
# Documentation available at https://wordpress.com/support/
|
||||
Reference in New Issue
Block a user