1 Commits
Author SHA1 Message Date
marc 4be284c210 postgres 2023-06-12 22:04:51 +02:00
473 changed files with 3740 additions and 9333 deletions
+2 -24
View File
@@ -1,8 +1,6 @@
*.env
data/secrets/*.env
!data/secrets/*.template.env
docker-compose.yml
data/openvpn
data/secrets
data/certbot
data/searx
data/jenkins
@@ -14,7 +12,7 @@ data/matrix
data/heimdall
data/pihole/etc-pihole
data/pxe
data/postgres/certs
data/postgres
data/wireguard
data/vaultwarden
data/filebrowser
@@ -27,27 +25,7 @@ data/yt-dlp
data/mongo
data/gpg
data/redis
data/fdroid
data/grafana
data/qbittorrent
data/webdav
data/pufferpanel
data/dockge
data/ocis
data/owncloud
data/wg-easy
data/nextcloud
data/casdoor
data/stash
data/code-server
data/gotify
data/apprise
data/calibre
data/codeserver
data/consul
data/zitadel
data.tar.gz
data.7z
data.7z.gpg
services/template.yml
data/traefik/dynamic/oidc.yml
+9 -13
View File
@@ -12,21 +12,17 @@ pull:
for file in services/*; do docker-compose -f $$file pull; done
export:
7z a -p data.7z data
import:
7z x -p data.7z
sign:
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
# rm data.tgz
rm data.tgz
networks:
docker network create --attachable caddy || true
docker network create --attachable ldap || true
docker network create --attachable postgres || true
docker network create --attachable mongo || true
docker network create --attachable vpn || true
docker network create --attachable redis || true
docker network create --attachable mqtt || true
docker network create --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
docker network create --driver overlay --attachable caddy || true
docker network create --driver overlay --attachable ldap || true
docker network create --driver overlay --attachable postgres || true
docker network create --driver overlay --attachable mongo || true
docker network create --driver overlay --attachable vpn || true
docker network create --driver overlay --attachable redis || true
docker network create --driver overlay --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --driver overlay --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
node:
docker node update --label-add net=web contabo
docker node update --label-add net=none tower
+60 -208
View File
@@ -1,221 +1,73 @@
[![Docker Swarm Deployed](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml/badge.svg)](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
# Docker
[![Docker Swarm Services](https://cdn.discordapp.com/attachments/809914059981586462/1042966875514077227/unknown.png)](https://swarm.marcpartensky.com)
[![Heimdall Portal](https://i.imgur.com/RiHrnck.jpeg)](https://heimdall.marcpartensky.com)
## Domains
- https://marcpartensky.com
- https://pandoc.marcpartensky.com
- https://ialab.marcpartensky.com
- https://notebook.marcpartensky.com
- https://searx.marcpartensky.com
- https://wordpress.marcpartensky.com
- https://git.marcpartensky.com
- https://gitlab.marcpartensky.com
- https://todolist.marcpartensky.com
- https://api.todolist.marcpartensky.com
- https://uml.marcpartensky.com
- https://grafana.marcpartensky.com
- https://prometheus.marcpartensky.com
- https://swarm.marcpartensky.com
- https://auth.marcpartensky.com
- https://seafile.marcpartensky.com
- https://cloud.marcpartensky.com
- https://mail.marcpartensky.com
- https://arch.marcpartensky.com
- https://matrix.marcpartensky.com
- https://vault.marcpartensky.com
<!-- - https://dns.marcpartensky.com -->
<!-- - https://glou.marcpartensky.com -->
<!-- - https://minecraft.marcpartensky.com -->
Self-hosted infrastructure managing 150+ services via Docker Compose, deployed on a personal VPS with automated merge/deploy tooling and multi reverse-proxy support (Traefik, Caddy, Nginx).
All services are in the `services/` folder as individual Compose files, ready to deploy standalone or merged into a single stack.
## Services
&nbsp;
| Service | Description |
| --- | --- |
| [adguard](services/adguard/compose.yml) | Network-wide DNS ad blocker |
| [authentik](services/authentik/compose.yml) | SSO / identity provider |
| [authentik_ldap](services/authentik_ldap/compose.yml) | Authentik LDAP outpost |
| [authelia](services/authelia/compose.yml) | Lightweight SSO and 2FA gateway |
| [casdoor](services/casdoor/compose.yml) | OAuth2 / OIDC identity platform |
| [keycloak](services/keycloak/compose.yml) | Enterprise identity and access management |
| [ldap](services/ldap/compose.yml) | OpenLDAP directory server |
| [ldap-manager](services/ldap-manager/compose.yml) | LDAP management UI |
| [zitadel](services/zitadel/compose.yml) | Cloud-native identity platform |
| [hydra](services/hydra/compose.yml) | OAuth2 server (ORY Hydra) |
| [traefik](services/traefik/compose.yml) | Reverse proxy and automatic TLS termination |
| [caddy](services/caddy/compose.yml) | Modern reverse proxy with auto-HTTPS |
| [nginx](services/nginx/compose.yml) | Classic HTTP reverse proxy |
| [pangolin](services/pangolin/compose.yml) | Tunneled reverse proxy for private networks |
| [cloudflare](services/cloudflare/compose.yml) | Cloudflare tunnel / DDNS integration |
| [sslh](services/sslh/compose.yml) | SSL/SSH multiplexer on port 443 |
| [wireguard](services/wireguard/compose.yml) | WireGuard VPN server |
| [wireguard-client](services/wireguard-client/compose.yml) | WireGuard VPN client |
| [openvpn](services/openvpn/compose.yml) | OpenVPN server |
| [openvpn_client](services/openvpn_client/compose.yml) | OpenVPN client |
| [dockvpn](services/dockvpn/compose.yml) | VPN-in-Docker setup |
| [ipsec](services/ipsec/compose.yml) | IPSec VPN (strongSwan) |
| [libreswan](services/libreswan/compose.yml) | IPSec VPN (Libreswan) |
| [pritunl](services/pritunl/compose.yml) | OpenVPN management platform |
| [gluetun](services/gluetun/compose.yml) | VPN client container with killswitch |
| [wstunnel](services/wstunnel/compose.yml) | WebSocket tunneling |
| [tunnel](services/tunnel/compose.yml) | Generic tunnel service |
| [grafana](services/grafana/compose.yml) | Metrics and monitoring dashboards |
| [prometheus](services/prometheus/compose.yml) | Time-series metrics collection |
| [cadvisor](services/cadvisor/compose.yml) | Container resource usage monitoring |
| [signoz](services/signoz/compose.yml) | OpenTelemetry observability platform |
| [uptime](services/uptime/compose.yml) | Uptime Kuma - service health monitoring |
| [diun](services/diun/compose.yml) | Docker image update notifier |
| [wud](services/wud/compose.yml) | What's Up Docker - image update tracker |
| [fail2ban](services/fail2ban/compose.yml) | Intrusion prevention via log analysis |
| [portainer](services/portainer/compose.yml) | Docker container management UI |
| [dockge](services/dockge/compose.yml) | Docker Compose stack manager UI |
| [rancher](services/rancher/compose.yml) | Kubernetes / multi-cluster management |
| [swarmpit](services/swarmpit/compose.yml) | Docker Swarm management UI |
| [swarm-visualizer](services/swarm-visualizer/compose.yml) | Docker Swarm topology visualizer |
| [mobydock](services/mobydock/compose.yml) | Docker management dashboard |
| [dockerdash](services/dockerdash/compose.yml) | Docker container dashboard |
| [docker](services/docker/compose.yml) | Docker-in-Docker setup |
| [registry](services/registry/compose.yml) | Private Docker image registry |
| [sablier](services/sablier/compose.yml) | On-demand container startup |
| [gitea](services/gitea/compose.yml) | Lightweight self-hosted Git service |
| [gitlab](services/gitlab/compose.yml) | Full DevOps platform with CI/CD |
| [jenkins](services/jenkins/compose.yml) | CI/CD automation server |
| [gitbook](services/gitbook/compose.yml) | Git-based documentation platform |
| [bookstack](services/bookstack/compose.yml) | Wiki and knowledge base |
| [wikijs](services/wikijs/compose.yml) | Modern wiki platform |
| [docuwiki](services/docuwiki/compose.yml) | DokuWiki flat-file wiki |
| [outline](services/outline/compose.yml) | Team knowledge base and wiki |
| [documize](services/documize/compose.yml) | Enterprise document management |
| [logseq](services/logseq/compose.yml) | Local-first knowledge graph |
| [mermaid](services/mermaid/compose.yml) | Diagram rendering service |
| [jupyterlab](services/jupyterlab/compose.yml) | Interactive Python notebook environment |
| [jupyterhub](services/jupyterhub/compose.yml) | Multi-user JupyterHub server |
| [code-server](services/code-server/compose.yml) | VS Code in the browser |
| [streamlit](services/streamlit/compose.yml) | Streamlit app hosting |
| [ialab](services/ialab/compose.yml) | AI/ML experimentation environment |
| [ia](services/ia/compose.yml) | AI service deployment |
| [mistral](services/mistral/compose.yml) | Self-hosted Mistral LLM |
| [open-webui](services/open-webui/compose.yml) | Web UI for local LLMs (Ollama) |
| [real-esrgan](services/real-esrgan/compose.yml) | AI image upscaling service |
| [chatgpt](services/chatgpt/compose.yml) | ChatGPT API proxy / UI |
| [serge](services/serge/compose.yml) | LLaMA chat interface |
| [nextcloud](services/nextcloud/compose.yml) | Cloud storage and collaboration suite |
| [owncloud](services/owncloud/compose.yml) | Self-hosted file storage platform |
| [ocis](services/ocis/compose.yml) | ownCloud Infinite Scale |
| [seafile](services/seafile/compose.yml) | High-performance file sync and share |
| [filebrowser](services/filebrowser/compose.yml) | Web-based file manager |
| [syncthing](services/syncthing/compose.yml) | Peer-to-peer file synchronization |
| [minio](services/minio/compose.yml) | S3-compatible object storage |
| [webdav](services/webdav/compose.yml) | WebDAV file server |
| [vaultwarden](services/vaultwarden/compose.yml) | Bitwarden-compatible password manager |
| [paperless](services/paperless/compose.yml) | Paperless-ngx document management and OCR |
| [docuseal](services/docuseal/compose.yml) | Document signing platform |
| [pandoc](services/pandoc/compose.yml) | Universal document converter |
| [calibre](services/calibre/compose.yml) | E-book library and converter |
| [wallabag](services/wallabag/compose.yml) | Read-it-later / article archiver |
| [linkding](services/linkding/compose.yml) | Minimalist bookmark manager |
| [linkwarden](services/linkwarden/compose.yml) | Collaborative bookmark manager |
| [yourls](services/yourls/compose.yml) | Self-hosted URL shortener |
| [kutt](services/kutt/compose.yml) | Modern URL shortener |
| [postgres](services/postgres/compose.yml) | PostgreSQL database |
| [pgadmin](services/pgadmin/compose.yml) | PostgreSQL admin UI |
| [pgweb](services/pgweb/compose.yml) | Lightweight PostgreSQL web client |
| [postgrest](services/postgrest/compose.yml) | REST API auto-generated from PostgreSQL schema |
| [pg-backup](services/pg-backup/compose.yml) | Automated PostgreSQL backup |
| [mysql](services/mysql/compose.yml) | MySQL database |
| [mongo](services/mongo/compose.yml) | MongoDB database |
| [mongo_express](services/mongo_express/compose.yml) | MongoDB web admin UI |
| [mongo_backup](services/mongo_backup/compose.yml) | Automated MongoDB backup |
| [redis](services/redis/compose.yml) | In-memory key-value store |
| [elasticsearch](services/elasticsearch/compose.yml) | Full-text search and analytics engine |
| [kibana](services/kibana/compose.yml) | Elasticsearch visualization UI |
| [dbdesigner](services/dbdesigner/compose.yml) | Database schema design tool |
| [nocodb](services/nocodb/compose.yml) | Airtable-like interface over any SQL database |
| [n8n](services/n8n/compose.yml) | Workflow automation platform |
| [apprise](services/apprise/compose.yml) | Multi-platform push notification service |
| [gotify](services/gotify/compose.yml) | Self-hosted push notification server |
| [ntfy](services/ntfy/compose.yml) | Simple pub/sub notification service |
| [mosquitto](services/mosquitto/compose.yml) | MQTT message broker |
| [matrix](services/matrix/compose.yml) | Matrix homeserver (Synapse) |
| [conduit](services/conduit/compose.yml) | Lightweight Matrix homeserver |
| [rocketchat](services/rocketchat/compose.yml) | Self-hosted team chat platform |
| [ssh-chat](services/ssh-chat/compose.yml) | Chat over SSH |
| [discord-bot](services/discord-bot/compose.yml) | Discord bot deployment |
| [discord_chatgpt](services/discord_chatgpt/compose.yml) | Discord bot with ChatGPT integration |
| [jellyfin](services/jellyfin/compose.yml) | Media server (video, music, photos) |
| [plex](services/plex/compose.yml) | Plex media server |
| [peertube](services/peertube/compose.yml) | Self-hosted video platform |
| [audiobookshelf](services/audiobookshelf/compose.yml) | Audiobook and podcast server |
| [minidlna](services/minidlna/compose.yml) | DLNA media streaming server |
| [stash](services/stash/compose.yml) | Media organizer (self-hosted) |
| [yt-dlp](services/yt-dlp/compose.yml) | YouTube / video downloader service |
| [playlistdl](services/playlistdl/compose.yml) | Playlist download automation |
| [invidious](services/invidious/compose.yml) | Privacy-friendly YouTube frontend |
| [home-assistant](services/home-assistant/compose.yml) | Home automation platform |
| [pihole](services/pihole/compose.yml) | DNS-based ad blocker |
| [ankisyncserver](services/ankisyncserver/compose.yml) | Self-hosted Anki flashcard sync server |
| [ffsync](services/ffsync/compose.yml) | Firefox Sync server |
| [etesync](services/etesync/compose.yml) | Encrypted contacts and calendar sync |
| [open-web-calendar](services/open-web-calendar/compose.yml) | Web-based calendar aggregator |
| [appflowy](services/appflowy/compose.yml) | Open-source Notion alternative |
| [focalboard](services/focalboard/compose.yml) | Project management and Kanban boards |
| [todolist](services/todolist/compose.yml) | To-do list service |
| [izitdone](services/izitdone/compose.yml) | Task completion tracker |
| [moodle](services/moodle/compose.yml) | E-learning platform |
| [openedx](services/openedx/compose.yml) | Open edX learning management system |
| [frappelms](services/frappelms/compose.yml) | Frappe-based LMS |
| [wger](services/wger/compose.yml) | Workout and fitness tracker |
| [time-assistant](services/time-assistant/compose.yml) | Time tracking assistant |
| [minecraft_bedrock](services/minecraft_bedrock/compose.yml) | Minecraft Bedrock edition server |
| [minecraft_champi](services/minecraft_champi/compose.yml) | Custom Minecraft server |
| [minecraft_jungle](services/minecraft_jungle/compose.yml) | Custom Minecraft server |
| [crafty-controller](services/crafty-controller/compose.yml) | Minecraft server manager |
| [mcmyadmin](services/mcmyadmin/compose.yml) | Minecraft server admin panel |
| [mc-router](services/mc-router/compose.yml) | Minecraft reverse proxy/router |
| [satisfactory](services/satisfactory/compose.yml) | Satisfactory dedicated game server |
| [pxe](services/pxe/compose.yml) | PXE boot server for network installs |
| [arch](services/arch/compose.yml) | Arch Linux container environment |
| [nixos](services/nixos/compose.yml) | NixOS container environment |
| [android](services/android/compose.yml) | Android emulator in Docker |
| [vnc](services/vnc/compose.yml) | VNC remote desktop server |
| [web-terminal](services/web-terminal/compose.yml) | Browser-based terminal (Wetty) |
| [rustdesk](services/rustdesk/compose.yml) | Self-hosted remote desktop server |
| [sshpiperd](services/sshpiperd/compose.yml) | SSH proxy and multiplexer |
| [ipfs](services/ipfs/compose.yml) | IPFS distributed storage node |
| [monero-node](services/monero-node/compose.yml) | Monero full node |
| [monero-miner](services/monero-miner/compose.yml) | Monero mining setup |
| [bisq](services/bisq/compose.yml) | Decentralized Bitcoin exchange |
| [cowrie](services/cowrie/compose.yml) | SSH honeypot |
| [beef](services/beef/compose.yml) | Browser exploitation framework (pentesting lab) |
| [burpsuite](services/burpsuite/compose.yml) | Web security testing proxy |
| [feroxbuster](services/feroxbuster/compose.yml) | Web content discovery tool |
| [sqlmap](services/sqlmap/compose.yml) | SQL injection testing tool |
| [kippo](services/kippo/compose.yml) | SSH honeypot (legacy) |
| [duplicati](services/duplicati/compose.yml) | Encrypted cloud backup |
| [backrest](services/backrest/compose.yml) | Restic backup management UI |
| [airbyte](services/airbyte/compose.yml) | Data integration and ETL platform |
| [fuseki](services/fuseki/compose.yml) | Apache Jena Fuseki SPARQL server |
| [suitecrm](services/suitecrm/compose.yml) | Open-source CRM |
| [wordpress](services/wordpress/compose.yml) | WordPress CMS (multiple instances) |
| [resume](services/resume/compose.yml) | Reactive Resume - self-hosted CV builder |
| [clipshare](services/clipshare/compose.yml) | Clipboard sharing service |
| [webshot](services/webshot/compose.yml) | URL screenshot service |
| [fdroid](services/fdroid/compose.yml) | F-Droid self-hosted app repository |
| [lrclib](services/lrclib/compose.yml) | Lyrics database service |
| [ebook2audiobookxtts](services/ebook2audiobookxtts/compose.yml) | E-book to audiobook converter (TTS) |
## Reverse Proxy
Compatible with Traefik, Caddy, and Nginx. Labels are included in each Compose file for automatic route registration.
## Reverse proxy
The `docker-compose.yml` configuration is compatible with the following reverse-proxies:
- traefik
- caddy
- nginx
## Run few services at once
- Example : run a monero node
```sh
# Example: Caddy + WordPress behind reverse proxy
docker network create --attachable caddy
docker-compose -f services/monero-node.yml up -d
```
- Example : run multiple a wordpress website behind a proxy
```sh
# create a global network
docker network create --attachable caddy # add '--driver overlay' for swarm
# then deploy both services
docker-compose -f services/caddy.yml -f services/wordpress.yml up -d
```
## Deployment
**Run a single service:**
## Deploy lots of services at once
- Select your services by putting those in ./env/vps.txt
```sh
docker-compose -f services/<service>/compose.yml up -d
```
**Merge and deploy multiple services at once:**
```sh
# 1. Select services
nvim ./env/vps.txt
# 2. Generate merged stack
./bin/docker-setup.sh merge vps
# 3. Deploy as a Compose stack
docker-compose -f ./stacks/docker-compose.yml up -d
# or as a Swarm stack
docker stack deploy -c ./stack/docker-compose.yml vps
```
## Related
- Generate a ./stack/docker-compose.yml with all merged configurations
```sh
./bin/docker-setup.sh merge vps # or make merge
```
- [OpenVPN via Docker](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
- Deploy
```sh
# as a swarm stack
docker stack deploy -c ./stack/docker-compose.yml vps # or make mswarm
# or using docker-compose
docker-compose -f ./stacks/docker-compose.yml up -d
```
### Links
[vpn](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
-1
View File
@@ -1 +0,0 @@
3.12
View File
+8 -11
View File
@@ -5,13 +5,10 @@ export COMPOSE_PATH_SEPARATOR=":"
export COMPOSE_FILE=$(find $PROJECT_PATH/services/*.yml | xargs -I @ echo -n @:)
export COMPOSE_FILE=${COMPOSE_FILE::-1}
# tool=podman-compose
tool=docker-compose
if [ "$1" = "-f" ]
then
$tool --file $@
docker-compose --file $@
exit
fi
@@ -19,10 +16,10 @@ if [ -f $PWD/docker-compose.yml ]
then
if [ "$#" = 0 ]
then
$tool ps
docker-compose ps
exit
fi
$tool --file $PWD/docker-compose.yml $@
docker-compose --file $PWD/docker-compose.yml $@
exit
fi
@@ -32,19 +29,19 @@ then
exit
fi
$tool $@
docker-compose $@
if [ "$1" = "up" ]
then
if [ "$2" = "-d" ]
then
$tool logs -f ${@: 3}
docker-compose logs -f ${@: 3}
else
$tool logs -f ${@: 2}
docker-compose logs -f ${@: 2}
fi
elif [ "$1" = "start" ]
then
$tool logs -f ${@: 2}
docker-compose logs -f ${@: 2}
elif [ "$1" = "restart" ]
then
$tool logs -f ${@: 2}
docker-compose logs -f ${@: 2}
fi
+1 -4
View File
@@ -1,8 +1,5 @@
#!/bin/sh
# tool=podman-compose
tool="docker compose"
if [ $1 = merge ]
then
cat ./env/$2.txt | xargs -I @ echo ./services/@.yml | xargs ./bin/docker-merge.py > ./stacks/docker-compose.yml
@@ -29,7 +26,7 @@ config_files() {
if [ -z $STACK ]
then
cmd="$tool $(config_files) up -d --force-recreate"
cmd="docker compose $(config_files) up -d"
else
cmd="docker stack deploy $(config_files) $STACK"
fi
-119
View File
@@ -1,119 +0,0 @@
#!/usr/bin/env python
import os
import re
import shutil
import fire
import yaml
from pathlib import Path
def update_env_paths(compose_path, original_base):
"""Modifie les chemins env_file vers .env"""
try:
with open(compose_path, 'r') as f:
compose_data = yaml.safe_load(f) or {}
except Exception as e:
print(f"Erreur lecture YAML: {compose_path} - {str(e)}")
return
modified = False
if 'services' in compose_data:
for srv_name, srv_config in compose_data['services'].items():
if 'volumes' in srv_config:
volumes = srv_config['volumes']
for i,volume in enumerate(volumes):
if 'data' in volume:
volumes[i] = "../" + volume
print("volume:", srv_name, volume, "->", volumes[i])
if 'env_file' in srv_config:
new_env_files = []
env_files = srv_config['env_file']
env_files = [env_files] if isinstance(env_files, str) else env_files
for ef in env_files:
file_name = os.path.basename(ef)
if file_name.startswith(original_base):
new_path = ".env"
if file_name.endswith(".template.env"):
new_path = ".env.template"
print(f"Modification: {ef} → {new_path}")
new_env_files.append(new_path)
modified = True
else:
new_env_files.append(ef)
srv_config['env_file'] = new_env_files[0] if len(new_env_files) == 1 else new_env_files
if modified:
try:
with open(compose_path, 'w') as f:
yaml.dump(compose_data, f, sort_keys=False, default_flow_style=False)
print(f"✓ Fichier mis à jour avec chemin relatif propre\n")
except Exception as e:
print(f"Erreur écriture YAML: {compose_path} - {str(e)}")
def process_compose_files(source, output_dir):
"""Convertit les fichiers Docker Compose avec mise à jour des chemins"""
for filename in os.listdir(source):
if filename.lower().endswith(('.yml', '.yaml')):
src_path = os.path.join(source, filename)
base_name = os.path.splitext(filename)[0]
service_name = re.sub(r'\d+$', '', base_name)
target_dir = os.path.join(output_dir, service_name)
# os.makedirs(target_dir, exist_ok=True)
dst_path = os.path.join(output_dir, filename, 'compose.yml')
# shutil.copy2(src_path, dst_path)
print(f"\n🔧 Traitement de {filename}:")
update_env_paths(dst_path, filename)
def process_env_files(source, output_dir):
"""Convertit les fichiers d'environnement"""
for filename in os.listdir(source):
src_path = os.path.join(source, filename)
target_file = None
if filename.lower().endswith('.template.env'):
base_name = filename[:-len('.template.env')]
target_file = '.env.template'
elif filename.lower().endswith('.env'):
base_name = filename[:-len('.env')]
target_file = '.env'
else:
continue
service_name = re.sub(r'\d+$', '', base_name)
target_dir = os.path.join(output_dir, service_name)
os.makedirs(target_dir, exist_ok=True)
dst_path = os.path.join(target_dir, target_file)
shutil.copy2(src_path, dst_path)
print(f"Conversion env: {filename} → {dst_path}")
def main(compose_source, env_source=None, output_dir=None):
"""
Args:
compose_source: Dossier source des compose files
env_source: Dossier source des fichiers d'environnement (défaut: compose_source)
output_dir: Dossier de sortie (défaut: compose_source)
"""
output_dir = output_dir or compose_source
Path(output_dir).mkdir(parents=True, exist_ok=True)
print("⏳ Traitement des fichiers docker-compose...")
process_compose_files(compose_source, output_dir)
env_source = env_source or compose_source
print("\n⏳ Traitement des fichiers d'environnement...")
process_env_files(env_source, output_dir)
if __name__ == "__main__":
fire.Fire(main)
-10
View File
@@ -1,10 +0,0 @@
[project]
name = "bin"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"fire>=0.7.0",
"pyyaml>=6.0.2",
]
Generated
-61
View File
@@ -1,61 +0,0 @@
version = 1
requires-python = ">=3.12"
[[package]]
name = "bin"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
{ name = "fire" },
{ name = "pyyaml" },
]
[package.metadata]
requires-dist = [
{ name = "fire", specifier = ">=0.7.0" },
{ name = "pyyaml", specifier = ">=6.0.2" },
]
[[package]]
name = "fire"
version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "termcolor" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6b/b6/82c7e601d6d3c3278c40b7bd35e17e82aa227f050aa9f66cb7b7fce29471/fire-0.7.0.tar.gz", hash = "sha256:961550f07936eaf65ad1dc8360f2b2bf8408fad46abbfa4d2a3794f8d2a95cdf", size = 87189 }
[[package]]
name = "pyyaml"
version = "6.0.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
]
[[package]]
name = "termcolor"
version = "3.0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f8/b6/8e2aaa8aeb570b5cc955cd913b083d96c5447bbe27eaf330dfd7cc8e3329/termcolor-3.0.1.tar.gz", hash = "sha256:a6abd5c6e1284cea2934443ba806e70e5ec8fd2449021be55c280f8a3731b611", size = 12935 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a6/7e/a574ccd49ad07e8b117407bac361f1e096b01f1b620365daf60ff702c936/termcolor-3.0.1-py3-none-any.whl", hash = "sha256:da1ed4ec8a5dc5b2e17476d859febdb3cccb612be1c36e64511a6f2485c10c69", size = 7157 },
]
+1
View File
@@ -0,0 +1 @@
mail._domainkey.marcpartensky.com marcpartensky.com:mail:/etc/opendkim/keys/marcpartensky.com/mail.private
+1
View File
@@ -0,0 +1 @@
*@marcpartensky.com mail._domainkey.marcpartensky.com
+2
View File
@@ -0,0 +1,2 @@
127.0.0.1
localhost
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsiv
U7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LV
GfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8
KQh5gyAdvokbnmq+r9VqOyiFbZ03JzyW+RPMTQxMu2kid+KH336/j5Tvza8ITN3v
qZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBt
IXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYS
obuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4r
WQ85kKcQYfl60FyReCKrrBGiFi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyr
OyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywq
tqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4Qsyxp
PTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEA
AQKCAgBUDv7kYjnomvY2V0+5W4ow2g3blr46U3MMR9h6LYTcMhthVgcEUvs1v8R2
RYXsN50a9I8kMHaIqy5Y4BmDljd9hiZGhcGTSiTlU/3Rqzu6OU+JbRmDlsmJIjYD
Yl8zEisc+/XuUSWh01CYtniitMQenh3e/rBQoDiXSSIsqETVmNgRVsUB99mdDUnM
Nb0G91cILj3v4W1Zr7Pyj5XpW4omiJ5gaFTdQQ2VDDeWxOkrX5QM9sri3CVx88Uv
SCC62Nbqz9ySg5Yv2k1UGTs52fQC1UogLQMfLWI0WHU6d5ClFwI5Jkfq5soH9uH9
CkK1ijoG6n+k+a01qTLq7Nq09uj+s6T0BFb6703ZATVxdTNxc3xaFcYm9ZpuDnCr
U8P6sVClCa9axjMZk1Kjl7OKSyp8LlRWPacxO4GXqlNmhyMUEldKj8cBmmxzC7fj
1fMXAve3EodVRM5Z6S+c/PO96TuJrSkddImWhPawd35/rrtBA+7ToPNYzy7aWk/N
UZ9uFkwPMLaDZeRG590natPOUkB0FZ7F8EEjwMbUhf1iyoPvLPiixofVk1NKTWMr
8DEN6bSH85v/lQaAQhmFFNRjdeyXts9+a7Kmsxos3AfW8hsmNHFxTuoXZ8AjvVAs
P7hlPFoJultoUwX/ZpMZtsEwFW3FUSw33Onsdblezp7Lb12icQKCAQEAzVKid6vv
TWGltBkL1XTtzYSNUTBIZfoOjKxTsrqSKNAR6i2lmN2bPKKTksPdloBoaQ/FHK6R
/+mebfgmnyulY6zWo8EUewi3LFyL9KhXe0K38/jUUokKWSq1Ob5D8Kjq6MuTCfuS
M5XnYfIZuIAZLE0244+Q8L03mc2f7uvl3KWaAZOVUsfHu/ETzTm6lgG8Liq5a0Fw
thCVVupKVeSLjRa/RWFVR9E9jvIjplo+SVAUJWyYwlOfPDVr76gqrF5P+4lOQpAQ
dzwhi4LHhvdgp9Y/Gw3s5vByA/7Ogh3QI5jS36w2EMCFYZpAe4HBQk1UOYVNBpeD
58m3venG5pBy4wKCAQEAyxglzQhZSBNkkukoRm7zzmNAx9/M0ROu7uwmJ9t02Q94
/3fpV2zVYA7rQKZcCgW5Dnhe4GaeyASRXq4x3v7F6iLCUjxbJ8e+YRhsNrp0WmYU
Xk6+06EQgLBICqDQeMDDeR+KQzaJonuMSrGyUb8krR6RB+/W3LqK/0CQSSaHozzN
6mxejoFoNhf7rfIP9JJD8QwpBsTJBQNCDvHo1lIA8e3nTngFzLJ56tRVwjaP8EPT
qJ7RfoVxdTyUTZTq/8EGOqNrzLgB/FehXq3eTz89tdlHOTT+mJ8H23AEtepxpLFx
5kN/eisi4PjUgCp11IHnmG8qnJr48uDlORdrqL424wKCAQBX/DVK+w7NJi8QAjuj
+Tt+enLke8BKkuFxPtePG4xOmPtUUsNHwo8naLO8jNqEB/q2Kt/Y7qX5+G6/yTsj
slxpXkOMYM0Z/B4ikHYZHZp/Y5PYpKS3yan5k+edGv+aPYiMwc/80yVPnclNm6WR
/rLK3TvMQFVoFG2jJw6GH+icqQpZ6phupNXen+xQYZCnf47Yac6TO7PFEU4ttLCu
JgX3K+xDGvakk/HBM9o7Cyjt2bcIYoUDoTn3Xx0l0faXbsLvk2NJ+tpTfh0R37UJ
DTEKOzFHsqv2OsthEuwDrirnVjHnT7DLdPSzYpqHUo8yjlitXYYocP1BcpuecnOd
kgDpAoIBAQCtLi4to8zeFQtR6teZF8t2VlRLG5+/ORWWTnBK1GvTG8qFrW6gSgG5
I3+fZTxen3qpyCK/H0KONLbxEYEdMgr6GCGzlhv00/KXQQglsuC8pQcBVAyM0W8N
DUShK3gZP+ZvRmHT5pF+p/N9TgFMi71ukf4B0pZZKgiUmC1w8xX+MD82gqouwlJm
rhTCwwKv/nlI9qGVUABJ8flGXSm6d7qukbsHwnjPj/E+OUnXjkc3Dd9Sjfr99DRH
UBz1+uJYq/Pv1KJ7svyefOrxnTlQQhERG/IL6hCffBxrFh4uMXgug9EoFK6DMn1P
cV9i2tIXH56o8UJYwB1Anl1YTYxUG78ZAoIBAD748NDDIj5yxjzW7UzNajLs9iB2
aiywcxPZCKo38Yi7KIaxIy8YeHqJ6chenvTl5S4ElB+sJ0SnYEvBqxceOXiM9l5i
HrDxIc3gzwY0lN0h2ZEiSKBQgjCtFW6gZ+6KmPonk98S8l8hbFW0vL+nS4EE9vtO
3cFhz/HPVB1ZY5ofy7/rLRd7GiISof9WcvrnOvE9BKFF0rNKZUjrf2PM3c2rObvj
5rgLvUiX/Mn9ND/XHTjT/UVptmkmcnjFyRvQwXXA4ns7gxBWYfYB1bqwh6WRfEU6
x3ykDol24hgohvpEnKMZDUTmLrxgF8hbJTP/57P2Yyy0faxZ/z/MER1qy28=
-----END RSA PRIVATE KEY-----
@@ -0,0 +1,4 @@
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsivU7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LVGfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8KQh5gyAdvokbnmq+r9VqOyiFbZ03Jz"
"yW+RPMTQxMu2kid+KH336/j5Tvza8ITN3vqZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBtIXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYSobuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4rWQ85kKcQYfl60FyReCKrrBGi"
"Fi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyrOyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywqtqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4QsyxpPTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEAAQ==" ) ; ----- DKIM key mail for marcpartensky.com
+1
View File
@@ -0,0 +1 @@
marc@marcpartensky.com|{SHA512-CRYPT}$6$G1SLI/9La3kXrkrt$9MdkaLuUEoa2n8mVVZoCwmy0g6MrvlHDL0i2FVrUakAXi3pgPfo/HNz/mLWRFS6nG1oOeP8IMbTGM.JptPR../
+44 -61
View File
@@ -1,9 +1,5 @@
http:
pprof:
port: 6060
enabled: false
address: 0.0.0.0:3000
session_ttl: 720h
bind_host: 0.0.0.0
bind_port: 3000
users:
- name: marc
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
@@ -12,14 +8,22 @@ block_auth_min: 15
http_proxy: ""
language: ""
theme: auto
debug_pprof: false
web_session_ttl: 720
dns:
bind_hosts:
- 0.0.0.0
port: 53
anonymize_client_ip: false
protection_enabled: true
blocking_mode: default
blocking_ipv4: ""
blocking_ipv6: ""
blocked_response_ttl: 10
protection_disabled_until: null
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
ratelimit: 20
ratelimit_subnet_len_ipv4: 24
ratelimit_subnet_len_ipv6: 56
ratelimit_whitelist: []
refuse_any: true
upstream_dns:
@@ -30,8 +34,8 @@ dns:
- 149.112.112.10
- 2620:fe::10
- 2620:fe::fe:10
fallback_dns: []
upstream_mode: load_balance
all_servers: false
fastest_addr: false
fastest_timeout: 1s
allowed_clients: []
disallowed_clients: []
@@ -58,6 +62,28 @@ dns:
ipset: []
ipset_file: ""
bootstrap_prefer_ipv6: false
filtering_enabled: true
filters_update_interval: 24
parental_enabled: false
safebrowsing_enabled: false
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
safe_search:
enabled: false
bing: true
duckduckgo: true
google: true
pixabay: true
yandex: true
youtube: true
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
blocked_services: []
upstream_timeout: 10s
private_networks: []
use_private_ptr_resolvers: true
@@ -66,8 +92,6 @@ dns:
dns64_prefixes: []
serve_http3: false
use_http3_upstreams: false
serve_plain_dns: true
hostsfile_enabled: true
tls:
enabled: false
server_name: ""
@@ -84,14 +108,12 @@ tls:
private_key_path: ""
strict_sni_check: false
querylog:
dir_path: ""
ignored: []
interval: 2160h
size_memory: 1000
enabled: true
file_enabled: true
statistics:
dir_path: ""
ignored: []
interval: 24h
enabled: true
@@ -139,43 +161,6 @@ dhcp:
lease_duration: 86400
ra_slaac_only: false
ra_allow_slaac: false
filtering:
blocking_ipv4: ""
blocking_ipv6: ""
blocked_services:
schedule:
time_zone: UTC
ids: []
protection_disabled_until: null
safe_search:
enabled: false
bing: true
duckduckgo: true
ecosia: true
google: true
pixabay: true
yandex: true
youtube: true
blocking_mode: default
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
safe_fs_patterns:
- /opt/adguardhome/work/data/userfilters/*
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
filters_update_interval: 24
blocked_response_ttl: 10
filtering_enabled: true
parental_enabled: false
safebrowsing_enabled: false
protection_enabled: true
clients:
runtime_sources:
whois: true
@@ -184,17 +169,15 @@ clients:
dhcp: true
hosts: true
persistent: []
log:
enabled: true
file: ""
max_backups: 0
max_size: 100
max_age: 3
compress: false
local_time: false
verbose: false
log_file: ""
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_compress: false
log_localtime: false
verbose: false
os:
group: ""
user: ""
rlimit_nofile: 0
schema_version: 29
schema_version: 20
-156
View File
@@ -1,156 +0,0 @@
# Minimal nginx configuration for AppFlowy-Cloud
# Self Hosted AppFlowy Cloud user should alter this file to suit their needs
events {
worker_connections 1024;
}
http {
# docker dns resolver
resolver 127.0.0.11 valid=10s;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 8080;
# https://github.com/nginxinc/nginx-prometheus-exporter
location = /stub_status {
stub_status;
}
}
server {
# ssl_certificate /etc/nginx/ssl/certificate.crt;
#ssl_certificate_key /etc/nginx/ssl/private_key.key;
listen 80;
listen 443 ssl;
client_max_body_size 10M;
underscores_in_headers on;
# GoTrue
location /gotrue/ {
set $gotrue gotrue;
proxy_pass http://$gotrue:9999;
rewrite ^/gotrue(/.*)$ $1 break;
# Allow headers like redirect_to to be handed over to the gotrue
# for correct redirecting
proxy_set_header Host $http_host;
proxy_pass_request_headers on;
}
# WebSocket
location /ws {
set $appflowy_cloud appflowy_cloud;
proxy_pass http://$appflowy_cloud:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
# AppFlowy-Cloud
# created a separate location block for handling CORS preflight (OPTIONS) requests specifically for the /api endpoint.
location = /api/options {
if ($http_origin ~* (http://127.0.0.1:8000)) {
add_header 'Access-Control-Allow-Origin' $http_origin;
}
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, PATCH';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version';
add_header 'Access-Control-Max-Age' 3600;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
location /api {
set $appflowy_cloud appflowy_cloud;
proxy_pass http://$appflowy_cloud:8000;
proxy_set_header X-Request-Id $request_id;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Set CORS headers for other requests
if ($http_origin ~* (http://127.0.0.1:8000)) {
add_header 'Access-Control-Allow-Origin' $http_origin always;
}
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
}
# Minio Web UI
# Derive from: https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
# Optional Module, comment this section if you are did not deploy minio in docker-compose.yml
location /minio/ {
set $minio minio;
proxy_pass http://$minio:9001;
rewrite ^/minio/(.*) /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
## This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
## To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
}
# PgAdmin
# Optional Module, comment this section if you are did not deploy pgadmin in docker-compose.yml
location /pgadmin/ {
set $pgadmin pgadmin;
proxy_pass http://$pgadmin:80;
proxy_set_header X-Script-Name /pgadmin;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
proxy_redirect off;
}
# Portainer
# Optional Module, comment this section if you are did not deploy portainer in docker-compose.yml
location /portainer/ {
set $portainer portainer;
proxy_pass http://$portainer:9000;
rewrite ^/portainer/(.*) /$1 break;
}
# Admin Frontend
# Optional Module, comment this section if you are did not deploy admin_frontend in docker-compose.yml
location / {
set $admin_frontend admin_frontend;
proxy_pass http://$admin_frontend:3000;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
}
}
}
+11
View File
@@ -0,0 +1,11 @@
[database]
type = postgres
host = postgres:5432
name = grafana
user = grafana
password = ZTliY2MwOWQ5ZjNiMzUyMTc5YWMwNmJi
ssl_mode = disable
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
-35
View File
@@ -1,35 +0,0 @@
[ req ]
default_bits = 8192
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca
dirstring_type = nobmp
[ req_distinguished_name ]
countryName = FR
countryName_default = FR
countryName_min = 2
countryName_max = 2
localityName = Europe/Paris
organizationalUnitName = Marc Partensky Corp
commonName = Marc Partensky
commonName_max = 64
emailAddress = marc@marcpartensky.com
emailAddress_max = 40
# [ req_attributes ]
# challengePassword = A challenge password
# challengePassword_min = 4
# challengePassword_max = 20
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
@@ -1,8 +0,0 @@
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER marc PASSWORD ZGQ4ZDk5OWEwYjNlMDJlNmQ5NmE1NjM5;
GRANT ALL PRIVILEGES ON DATABASE * TO marc;
EOSQL
-14
View File
@@ -1,14 +0,0 @@
#!/bin/sh
cd /var/lib/postgresql/certs
# private key and certificate from it
openssl req -new -text -newkey rsa:8192 -passout pass:$POSTGRES_PASSWORD -subj /CN=localhost -out server.req -keyout privkey.pem
# self signed root certificate
openssl rsa -in privkey.pem -passin pass:$POSTGRES_PASSWORD -out server.key
# derived certificate
openssl req -x509 -in server.req -text -key server.key -out server.crt
# change permissions to the root certificate for postgres
chmod 600 server.key
chown postgres:postgres server.key
-11
View File
@@ -1,16 +1,11 @@
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
rule_files:
# Fichier de règle
- 'alert.rules'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
@@ -26,9 +21,3 @@ scrape_configs:
static_configs:
- targets:
- cadvisor:8080
- job_name: 'traefik'
scrape_interval: 5s
static_configs:
- targets: ['traefik:3000']
-80
View File
@@ -1,80 +0,0 @@
# This file only contains Docker relevant variables.## The only exception to the non-default rule are env vars related to scaling.## See https://github.com/airbytehq/airbyte/blob/master/airbyte-config/config-models/src/main/java/io/airbyte/config/Configs.java# for the latest environment variables.## # Contributors - please organise this env file according to the above linked file.
### SHARED ###VERSION= # Example: 0.50.5
# When using the airbyte-db via default docker imageCONFIG_ROOT= # Example: /data
DATA_DOCKER_MOUNT= # Example: airbyte_data
DB_DOCKER_MOUNT= # Example: airbyte_db
# Workspace storage for running jobs (logs, etc)WORKSPACE_ROOT= # Example: /tmp/workspace
WORKSPACE_DOCKER_MOUNT= # Example: airbyte_workspace
# Local mount to access local files from filesystem# todo (cgardens) - when we are mount raw directories instead of named volumes, *_DOCKER_MOUNT must# be the same as *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/578LOCAL_ROOT= # Example: /tmp/airbyte_local
LOCAL_DOCKER_MOUNT= # Example: /tmp/airbyte_local
# todo (cgardens) - hack to handle behavior change in docker compose. *_PARENT directories MUST# already exist on the host filesystem and MUST be parents of *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/577HACK_LOCAL_ROOT_PARENT= # Example: /tmp
# Proxy Configuration# Set to empty values, e.g. "" to disable basic authBASIC_AUTH_USERNAME= # Example: username
BASIC_AUTH_PASSWORD= # Example: Passw0rd
BASIC_AUTH_PROXY_TIMEOUT= # Example: 900
### DATABASE ###DATABASE_USER= # Example: username
DATABASE_PASSWORD= # Example: Passw0rd
DATABASE_HOST= # Example: db
DATABASE_PORT= # Example: 5432
DATABASE_DB= # Example: airbyte
DATABASE_URL= # Example: protocol://user:password@host:port/path
JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.26.001
# Airbyte Internal Config Database, defaults to Job Database if empty. Explicitly left empty to mute docker compose warnings.CONFIG_DATABASE_USER= # Example: username
CONFIG_DATABASE_PASSWORD= # Example: Passw0rd
CONFIG_DATABASE_URL= # Example: protocol://user:password@host:port/path
CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.23.002
### AIRBYTE SERVICES ###TEMPORAL_HOST= # Example: airbyte-temporal:7233
INTERNAL_API_HOST= # Example: airbyte-server:8001
CONNECTOR_BUILDER_API_HOST= # Example: airbyte-connector-builder-server:80
WEBAPP_URL= # Example: protocol://user:password@host:port/path
# Although not present as an env var, required for webapp configuration.CONNECTOR_BUILDER_API_URL= # Example: protocol://user:password@host:port/path
### JOBS #### Relevant to scaling.SYNC_JOB_MAX_ATTEMPTS= # Example: 3
SYNC_JOB_MAX_TIMEOUT_DAYS= # Example: 3
SYNC_JOB_INIT_RETRY_TIMEOUT_MINUTES= # Example: 5
JOB_MAIN_CONTAINER_CPU_REQUEST=
JOB_MAIN_CONTAINER_CPU_LIMIT=
JOB_MAIN_CONTAINER_MEMORY_REQUEST=
JOB_MAIN_CONTAINER_MEMORY_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_REQUEST=
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_REQUEST=
### LOGGING/MONITORING/TRACKING ###TRACKING_STRATEGY= # Example: segment
JOB_ERROR_REPORTING_STRATEGY= # Example: logging
# Although not present as an env var, expected by Log4J configuration.LOG_LEVEL= # Example: INFO
### APPLICATIONS #### Worker #WORKERS_MICRONAUT_ENVIRONMENTS= # Example: control-plane
# Cron #CRON_MICRONAUT_ENVIRONMENTS= # Example: control-plane
# Relevant to scaling.MAX_SYNC_WORKERS= # Example: 5
MAX_SPEC_WORKERS= # Example: 5
MAX_CHECK_WORKERS= # Example: 5
MAX_DISCOVER_WORKERS= # Example: 5
MAX_NOTIFY_WORKERS= # Example: 5
SHOULD_RUN_NOTIFY_WORKFLOWS= # Example: true
# Temporal Activity configurationACTIVITY_MAX_ATTEMPT=
ACTIVITY_INITIAL_DELAY_BETWEEN_ATTEMPTS_SECONDS=
ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS=
WORKFLOW_FAILURE_RESTART_DELAY_SECONDS=
### FEATURE FLAGS ###AUTO_DISABLE_FAILING_CONNECTIONS= # Example: false
FEATURE_FLAG_CLIENT= # Example: myhiddensecret
### MONITORING FLAGS #### Accepted values are datadog and otel (open telemetry)METRIC_CLIENT= # Example: myhiddensecret
OTEL_COLLECTOR_ENDPOINT= # Example: "http://host.docker.internal:4317"
USE_STREAM_CAPABLE_STATE= # Example: true
AUTO_DETECT_SCHEMA= # Example: true
# To test local catalog changes, set the below variable to the path of your local catalog.# https://docs.airbyte.com/connector-development/testing-connectors/testing-a-local-catalog-in-developmentLOCAL_CONNECTOR_CATALOG_PATH=
-57
View File
@@ -1,57 +0,0 @@
MINIO_BROWSER_REDIRECT_URL= # Example: protocol://user:password@host:port/path
MINIO_ROOT_USER= # Example: username
MINIO_ROOT_PASSWORD= # Example: Passw0rd
GOTRUE_SITE_URL= # Example: protocol://user:password@host:port/path
URI_ALLOW_LIST= # Example: protocol://user:password@host:port/path
GOTRUE_JWT_SECRET= # Example: myhiddensecret
GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
GOTRUE_DB_DRIVER= # Example: postgres
API_EXTERNAL_URL= # Example: protocol://user:password@host:port/path
DATABASE_URL= # Example: protocol://user:password@host:port/path
PORT= # Example: 9999
GOTRUE_SMTP_HOST= # Example: ${GOTRUE_SMTP_HOST}
GOTRUE_SMTP_PORT= # Example: ${GOTRUE_SMTP_PORT}
GOTRUE_SMTP_USER= # Example: username
GOTRUE_SMTP_PASS= # Example: Passw0rd
GOTRUE_MAILER_URLPATHS_CONFIRMATION= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_INVITE= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_RECOVERY= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE= # Example: protocol://user:password@host:port/path
GOTRUE_SMTP_ADMIN_EMAIL= # Example: user.name@gmail.com
GOTRUE_SMTP_MAX_FREQUENCY= # Example: ${GOTRUE_SMTP_MAX_FREQUENCY:-1ns}
GOTRUE_MAILER_AUTOCONFIRM= # Example: user.name@gmail.com
# Google OAuth configGOTRUE_EXTERNAL_GOOGLE_ENABLED= # Example: ${GOTRUE_EXTERNAL_GOOGLE_ENABLED}
GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_GOOGLE_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI= # Example: protocol://user:password@host:port/path
# GITHUB OAuth configGOTRUE_EXTERNAL_GITHUB_ENABLED= # Example: ${GOTRUE_EXTERNAL_GITHUB_ENABLED}
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_GITHUB_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI= # Example: protocol://user:password@host:port/path
# Discord OAuth configGOTRUE_EXTERNAL_DISCORD_ENABLED= # Example: ${GOTRUE_EXTERNAL_DISCORD_ENABLED}
GOTRUE_EXTERNAL_DISCORD_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_DISCORD_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI= # Example: protocol://user:password@host:port/path
RUST_LOG= # Example: info
APPFLOWY_ENVIRONMENT= # Example: production
APPFLOWY_DATABASE_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_REDIS_URI= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_JWT_SECRET= # Example: myhiddensecret
APPFLOWY_GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
APPFLOWY_GOTRUE_BASE_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_EXT_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_ADMIN_EMAIL= # Example: user.name@gmail.com
APPFLOWY_GOTRUE_ADMIN_PASSWORD= # Example: Passw0rd
APPFLOWY_S3_USE_MINIO= # Example: ${APPFLOWY_S3_USE_MINIO}
APPFLOWY_S3_MINIO_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_S3_ACCESS_KEY= # Example: myhiddenkey
APPFLOWY_S3_SECRET_KEY= # Example: myhiddenkey
APPFLOWY_S3_BUCKET= # Example: ${APPFLOWY_S3_BUCKET}
APPFLOWY_S3_REGION= # Example: ${APPFLOWY_S3_REGION}
RUST_LOG= # Example: info
ADMIN_FRONTEND_REDIS_URL= # Example: protocol://user:password@host:port/path
ADMIN_FRONTEND_GOTRUE_URL= # Example: protocol://user:password@host:port/path
-10
View File
@@ -1,10 +0,0 @@
apprise_config_dir= # Example: /config
apprise_attach_dir= # Example: /attach
# apprise_stateful_mode=apprise_config_lock= # Example: no
# apprise_deny_services=# apprise_allow_services=allowed_hosts= # Example: *
apprise_recursion_max= # Example: 1
# apprise_worker_count=base_url= # Example: protocol://user:password@host:port/path
log_level= # Example: DEBUG
debug= # Example: yes
-23
View File
@@ -1,23 +0,0 @@
AUTHENTIK_POSTGRESQL__HOST= # Example: postgres
AUTHENTIK_POSTGRESQL__NAME= # Example: authentik
AUTHENTIK_POSTGRESQL__USER= # Example: username
AUTHENTIK_POSTGRESQL__PASSWORD= # Example: Passw0rd
AUTHENTIK_DEBUG= # Example: true
PG_PASS= # Example: Passw0rd
AUTHENTIK_REDIS__HOST= # Example: redis
AUTHENTIK_SECRET_KEY= # Example: myhiddenkey
AUTHENTIK_EMAIL__HOST= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__PORT= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__USERNAME= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__PASSWORD= # Example: Passw0rd
# # Use StartTLSAUTHENTIK_EMAIL__USE_TLS= # Example: user.name@gmail.com
# # Use SSLAUTHENTIK_EMAIL__FROM= # Example: user.name@gmail.com
AK_ADMIN_PASS= # Example: Passw0rd
AUTHENTIK_LISTEN__HTTP= # Example: 0.0.0.0:80
AUTHENTIK_LISTEN__HTTPS= # Example: 0.0.0.0:443
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
AUTHENTIK_HOST= # Example: http://authentik
AUTHENTIK_INSECURE= # Example: true
AUTHENTIK_TOKEN= # Example: myhiddentoken
-3
View File
@@ -1,3 +0,0 @@
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
AUTHENTIK_TOKEN= # Example: myhiddentoken
-15
View File
@@ -1,15 +0,0 @@
PUID= # Example: myhiddenid
PGID= # Example: myhiddenid
TZ= # Example: Etc/UTC
APP_URL= # Example: protocol://user:password@host:port/path
APP_KEY= # Example: myhiddenkey
DB_CONNECTION= # Example: postgresql
DB_HOST= # Example: postgres
DB_PORT= # Example: 5432
DB_DATABASE= # Example: bookstack
DB_USERNAME= # Example: username
DB_PASSWORD= # Example: Passw0rd
-8
View File
@@ -1,8 +0,0 @@
WORDPRESS_DB_HOST= # Example: business_mysql
WORDPRESS_DB_NAME= # Example: business
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
# WORDPRESS_TABLE_PREFIX=...MYSQL_DATABASE= # Example: business
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
-9
View File
@@ -1,9 +0,0 @@
TUNNEL_TOKEN= # Example: myhiddentoken
CLOUDFLARED_TOKEN= # Example: myhiddentoken
CLOUDFLARE_API_TOKEN= # Example: myhiddentoken
CLOUDFLARE_ACCOUNT_ID= # Example: myhiddenid
CLOUDFLARE_TUNNEL_ID= # Example: myhiddenid
CLOUDFLARE_ZONE_ID= # Example: myhiddenid
# DOMAIN_NAME=traefik.marcpartensky.comTRAEFIK_API_ENDPOINT= # Example: http://traefik:8080
TRAEFIK_SERVICE_ENDPOINT= # Example: http://traefik:80
TRAEFIK_ENTRYPOINT= # Example: web
-35
View File
@@ -1,35 +0,0 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
DISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
IALAB_URL= # Example: protocol://user:password@host:port/path
POSTGRES_DB= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_HOST= # Example: postgres
POSTGRES_PORT= # Example: 5432
POSTGRES_PASSWORD= # Example: Passw0rd
CHANNEL_ID_NOTIF= # Example: myhiddenid
@@ -1,2 +0,0 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
@@ -1,3 +0,0 @@
ME_CONFIG_BASICAUTH_USERNAME= # Example: username
ME_CONFIG_BASICAUTH_PASSWORD= # Example: Passw0rd
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
@@ -1,3 +0,0 @@
DISCORD_TOKEN= # Example: myhiddentoken
OPENAI_EMAIL= # Example: user.name@gmail.com
OPENAI_PASSWORD= # Example: Passw0rd
-26
View File
@@ -1,26 +0,0 @@
DJANKISERV_MAINDB_ENGINE= # Example: django.db.backends.postgresql
DJANKISERV_MAINDB_NAME= # Example: djankiserv
DJANKISERV_MAINDB_USER= # Example: username
DJANKISERV_MAINDB_PASSWORD= # Example: Passw0rd
DJANKISERV_MAINDB_HOST= # Example: postgres
DJANKISERV_MAINDB_PORT= # Example: 5432
DJANKISERV_USERDB_ENGINE= # Example: username
DJANKISERV_USERDB_NAME= # Example: username
DJANKISERV_USERDB_USER= # Example: username
DJANKISERV_USERDB_PASSWORD= # Example: Passw0rd
DJANKISERV_USERDB_HOST= # Example: username
DJANKISERV_USERDB_PORT= # Example: username
HOST= # Example: 0.0.0.0
PORT= # Example: 8000
DJANKISERV_DEBUG= # Example: True
# DJANKISERV_DATA_ROOT=/code/dataDJANKISERV_SECRET_KEY= # Example: myhiddenkey
# DJANKISERV_ALLOWED_HOSTS='djankiserv.marcpartensky.com'DJANKISERV_ALLOWED_HOSTS= # Example: "*"
DJANKISERV_HOSTS= # Example: djankiserv
DJANGO_DEBUG= # Example: 1
# DJANGO_ALLOWED_HOSTS="*,localhost"# ALLOWED_HOSTS="*,localhost"ALLOWED_HOSTS= # Example: *
DJANGO_SETTINGS_MODULE= # Example: djankiserv_api.settings
PYTHON_APP= # Example: /app/src
-8
View File
@@ -1,8 +0,0 @@
NODE_ENV= # Example: docker
ADMIN_NAME= # Example: marc
ADMIN_PASSWORD= # Example: Passw0rd
JWT_SECRET= # Example: myhiddensecret
DB_HOST= # Example: postgres
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_NAME= # Example: dockerdash
-28
View File
@@ -1,28 +0,0 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
# DISCORD_MONGO_CLUSTER=discord-cluster-5ckni.mongodb.net/testDISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_CLUSTER= # Example: discord_bot_mongo
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
WOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
-13
View File
@@ -1,13 +0,0 @@
DB_ENGINE= # Example: postgres
DATABASE_NAME= # Example: etesync
DATABASE_USER= # Example: username
DATABASE_HOST= # Example: postgres
DATABASE_PASSWORD= # Example: Passw0rd
DATABASE_PORT= # Example: 5432
SUPER_USER= # Example: username
SUPER_PASS= # Example: Passw0rd
SUPER_EMAIL= # Example: user.name@gmail.com
SECRET_KEY= # Example: myhiddenkey
DEBUG= # Example: False
AUTO_UPDATE= # Example: true
# ALLOWED_HOSTS=etesync.marcpartensky.fr,etesync.marcpartensky.comALLOWED_HOSTS= # Example: etesync.marcpartensky.fr
-14
View File
@@ -1,14 +0,0 @@
ADMIN_PASSWORD= # Example: Passw0rd
DB_TYPE= # Example: postgres
DB_USER= # Example: username
DB_HOST= # Example: postgres
DB_PORT= # Example: 5432
DB_PASS= # Example: Passw0rd
DB_NAME= # Example: etherpad
DB_CHARSET= # Example: utf8mb4
# REQUIRE_AUTHENTICATION=trueREQUIRE_AUTHENTICATION= # Example: false
# ne marche pasSSO_ISSUER= # Example: https://authentik.marcpartensky.com
ADMIN_CLIENT= # Example: myhiddensecret
ADMIN_SECRET= # Example: myhiddensecret
COMMIT_RATE_LIMIT_POINTS= # Example: 150
-12
View File
@@ -1,12 +0,0 @@
TZ= # Example: Europe/Paris
F2B_LOG_TARGET= # Example: STDOUT
F2B_LOG_LEVEL= # Example: INFO
F2B_DB_PURGE_AGE= # Example: 1d
SSMTP_HOST= # Example: smtp.gmail.com
SSMTP_PORT= # Example: 587
SSMTP_HOSTNAME= # Example: gmail.com
SSMTP_USER= # Example: username
SSMTP_PASSWORD= # Example: Passw0rd
SSMTP_TLS= # Example: YES
-6
View File
@@ -1,6 +0,0 @@
SYNCSERVER_PUBLIC_URL= # Example: protocol://user:password@host:port/path
SYNCSERVER_SECRET= # Example: myhiddensecret
SYNCSERVER_SQLURI= # Example: protocol://user:password@host:port/path
SYNCSERVER_BATCH_UPLOAD_ENABLED= # Example: true
SYNCSERVER_FORCE_WSGI_ENVIRON= # Example: false
PORT= # Example: 5000
-1
View File
@@ -1 +0,0 @@
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
-1
View File
@@ -1 +0,0 @@
ADMIN_PASSWORD= # Example: Passw0rd
-8
View File
@@ -1,8 +0,0 @@
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_DB= # Example: gitea
GITEA__database__TYPE= # Example: postgres
GITEA__database__HOST= # Example: postgres
GITEA__database__NAME= # Example: gitea
GITEA__database__USER= # Example: username
GITEA__database__PASSWD= # Example: Passw0rd
-7
View File
@@ -1,7 +0,0 @@
# SERVER_COUNTRIES: France# WireguardVPN_TYPE= # Example: 0.0.0.0
VPN_SERVICE_PROVIDER= # Example: myhiddenid
VPN_ENDPOINT_IP= # Example: 0.0.0.0
VPN_ENDPOINT_PORT= # Example: 0.0.0.0
WIREGUARD_PUBLIC_KEY= # Example: myhiddenkey
WIREGUARD_PRIVATE_KEY= # Example: myhiddenkey
WIREGUARD_ADDRESSES= # Example: 192.168.6.78/32
-40
View File
@@ -1,40 +0,0 @@
GF_INSTALL_PLUGINS= # Example: grafana-mqtt-datasource,redis-datasource,cloudflare-app
GF_SERVER_ROOT_URL= # Example: protocol://user:password@host:port/path
GF_SERVER_DOMAIN= # Example: grafana.marcpartensky.com
GF_SECURITY_ALLOW_EMBEDDING= # Example: protocol://user:password@host:port/path
GF_AUTH_ANONYMOUS_ENABLED= # Example: True
# GF_SERVER_SERVE_FROM_SUB_PATH=false# GF_SERVER_ENFORCE_DOMAIN=true# GF_REVERSE_PROXY_HEADERS_X_FORWARDED_PROTO=true# GF_REVERSE_PROXY_HEADER_X_FORWARDED_HOST=true
# PostgresGF_DATABASE_TYPE= # Example: postgres
GF_DATABASE_HOST= # Example: postgres
GF_DATABASE_NAME= # Example: grafana
GF_DATABASE_USER= # Example: username
GF_DATABASE_PASSWORD= # Example: Passw0rd
GF_DATABASE_SSL_MODE= # Example: disable
GF_AUTH_GENERIC_OAUTH_ENABLED= # Example: true
GF_AUTH_OAUTH_AUTO_LOGIN= # Example: true
GF_AUTH_GENERIC_OAUTH_NAME= # Example: Authentik
GF_AUTH_GENERIC_OAUTH_CLIENT_ID= # Example: myhiddenid
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET= # Example: myhiddensecret
GF_AUTH_GENERIC_OAUTH_SCOPES= # Example: openid profile email
GF_AUTH_GENERIC_OAUTH_AUTH_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_GENERIC_OAUTH_TOKEN_URL= # Example: myhiddentoken
GF_AUTH_GENERIC_OAUTH_API_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_SIGNOUT_REDIRECT_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH= # Example: "contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') && 'Editor' || 'Viewer'"
# # Enable LDAP# GF_AUTH_LDAP_ENABLED=true
# # LDAP Server Configuration# GF_AUTH_LDAP_CONFIG_SERVERS_0_HOST=ldap# GF_AUTH_LDAP_CONFIG_SERVERS_0_PORT=389# GF_AUTH_LDAP_CONFIG_SERVERS_0_USE_SSL=false
# # Bind Credentials# GF_AUTH_LDAP_CONFIG_SERVERS_0_BIND_DN=cn=ldapservice,dc=ldap,dc=goauthentik,dc=io
# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_FILTER=(cn=%s)# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_BASE_DNS=dc=ldap,dc=goauthentik,dc=io
# # Group Mapping# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_GROUP_DN=cn=admins,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_ORG_ROLE=Admin# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_GROUP_DN=cn=editors,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_ORG_ROLE=Editor
-13
View File
@@ -1,13 +0,0 @@
DB_NAME= # Example: brainperformer
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_HOST= # Example: 0.0.0.0
RECAPTCHA_SECRET_KEY= # Example: myhiddenkey
MAIL= # Example: user.name@gmail.com
MAIL_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: brainperformer
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_HOST= # Example: 0.0.0.0
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
-3
View File
@@ -1,3 +0,0 @@
ACCOUNT_EMAIL= # Example: user.name@gmail.com
ACCOUNT_PASSWORD= # Example: Passw0rd
DEVICE_NAME= # Example: vps
-29
View File
@@ -1,29 +0,0 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
DISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
IALAB_URL= # Example: protocol://user:password@host:port/path
-2
View File
@@ -1,2 +0,0 @@
KEYCLOAK_ADMIN= # Example: myhiddenkey
KEYCLOAK_ADMIN_PASSWORD= # Example: Passw0rd
View File
-2
View File
@@ -1,2 +0,0 @@
LDAP_ADMIN_BIND_PWD= # Example: Passw0rd
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
@@ -1,2 +0,0 @@
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
LDAP_CONFIG_PASSWORD= # Example: Passw0rd
-122
View File
@@ -1,122 +0,0 @@
# mariadbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: mailcow
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_INITDB_SKIP_TZINFO= # Example: 0.0.0.0
# ------------------------------# ------------------------------
MAILCOW_HOSTNAME= # Example: user.name@gmail.com
MAILCOW_PASS_SCHEME= # Example: Passw0rd
# ------------------------------# SQL database configuration# ------------------------------
DBNAME= # Example: mailcow
DBUSER= # Example: username
# Please use long, random alphanumeric strings (A-Za-z0-9)
DBPASS= # Example: Passw0rd
DBROOT= # Example: 8v5tSifRaAjLRVObkRbe1F0qjm11
# ------------------------------# HTTP/S Bindings# ------------------------------
# You should use HTTPS, but in case of SSL offloaded reverse proxies:# Might be important: This will also change the binding within the container.# If you use a proxy within Docker, point it to the ports you set below.# IMPORTANT: Do not use port 8081, 9081 or 65510!# Example: HTTP_BIND=1.2.3.4
HTTP_PORT= # Example: 80
HTTP_BIND=
HTTPS_PORT= # Example: 443
HTTPS_BIND=
# ------------------------------# Other bindings# ------------------------------# You should leave that alone# Format: 11.22.33.44:25 or 12.34.56.78:465 etc.
SMTP_PORT= # Example: 25
SMTPS_PORT= # Example: 465
SUBMISSION_PORT= # Example: 587
IMAP_PORT= # Example: 143
IMAPS_PORT= # Example: 993
POP_PORT= # Example: 110
POPS_PORT= # Example: 995
SIEVE_PORT= # Example: 4190
DOVEADM_PORT= # Example: 127.0.0.1:19991
SQL_PORT= # Example: 127.0.0.1:13306
SOLR_PORT= # Example: 127.0.0.1:18983
REDIS_PORT= # Example: 127.0.0.1:7654
# Your timezone# Use the row named 'TZ database name' + pay attention for 'Notes' row
TZ= # Example: Europe/Paris
# Fixed project name# Please use lowercase letters only
COMPOSE_PROJECT_NAME= # Example: mailcow
ACL_ANYONE= # Example: disallow
# Garbage collector cleanup# How long should objects remain in the garbage until they are being deleted? (value in minutes)
MAILDIR_GC_TIME= # Example: user.name@gmail.com
# Additional SAN for the certificate##ADDITIONAL_SAN=imap.*,smtp.*# This will expand the certificate to "imap.example.com", "smtp.example.com", "imap.example.net", "smtp.example.net"# plus every domain you add in the future.## You can also just add static names...#ADDITIONAL_SAN=srv1.example.net# ...or combine wildcard and static names:#ADDITIONAL_SAN=imap.*,srv1.example.com#
ADDITIONAL_SAN= # Example: marcpartensky.com
## You can understand this as server_name directive in Nginx.# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f
ADDITIONAL_SERVER_NAMES=
SKIP_LETS_ENCRYPT= # Example: 0.0.0.0
# Create seperate certificates for all domains - y/nENABLE_SSL_SNI= # Example: n
SKIP_IP_CHECK= # Example: 0.0.0.0
SKIP_HTTP_VERIFICATION= # Example: 0.0.0.0
SKIP_CLAMD= # Example: 0.0.0.0
SKIP_SOGO= # Example: 0.0.0.0
SKIP_SOLR= # Example: 0.0.0.0
# Solr heap size in MB, there is no recommendation, please see Solr docs.# Solr is a prone to run OOM and should be monitored. Unmonitored Solr setups are not recommended.
SOLR_HEAP= # Example: 1024
ALLOW_ADMIN_EMAIL_LOGIN= # Example: user.name@gmail.com
USE_WATCHDOG= # Example: y
# CAUTION:
WATCHDOG_NOTIFY_BAN= # Example: n
#WATCHDOG_SUBJECT=
# No data is collected. Opt-in and anonymous.WATCHDOG_EXTERNAL_CHECKS= # Example: n
# Enable watchdog verbose loggingWATCHDOG_VERBOSE= # Example: n
# Max log lines per service to keep in Redis logs
LOG_LINES= # Example: 9999
IPV4_NETWORK= # Example: 0.0.0.0
IPV6_NETWORK= # Example: 0.0.0.0
#SNAT_TO_SOURCE=
#SNAT6_TO_SOURCE=
#API_ALLOW_FROM=172.22.1.1,127.0.0.1
MAILDIR_SUB= # Example: user.name@gmail.com
# SOGo session timeout in minutesSOGO_EXPIRE_SESSION= # Example: 480
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_USER= # Example: username
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_PASS= # Example: Passw0rd
# Let's Encrypt registration contact information# Optional: Leave empty for none# This value is only used on first order!# Setting it at a later point will require the following steps:ACME_CONTACT=
# WebAuthn device manufacturer verification# After setting WEBAUTHN_ONLY_TRUSTED_VENDORS=y only devices from trusted manufacturers are allowedWEBAUTHN_ONLY_TRUSTED_VENDORS= # Example: n
-2
View File
@@ -1,2 +0,0 @@
MINIO_ROOT_USER= # Example: username
MINIO_ROOT_PASSWORD= # Example: Passw0rd
-8
View File
@@ -1,8 +0,0 @@
NODE_ENV= # Example: docker
ADMIN_NAME= # Example: marc
ADMIN_PASSWORD= # Example: Passw0rd
JWT_SECRET= # Example: myhiddensecret
DB_HOST= # Example: postgres
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_NAME= # Example: dockerdash
-1
View File
@@ -1 +0,0 @@
WALLET= # Example: 43J2XmRtjDPRLD35UsYGH2AZamFBQz7dt4VdvZXVm3SuadTrvcoXUXBRUNHqukFte23Q5TWXqhbwaLJJgoVQzzbe2AJDANQ
-2
View File
@@ -1,2 +0,0 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
-7
View File
@@ -1,7 +0,0 @@
MONGODB_HOST= # Example: mongo
MONGODB_PORT= # Example: 27017
MONGODB_USER= # Example: username
MONGODB_PASS= # Example: Passw0rd
CRON_TIME= # Example: "0 5 * * *"
INIT_BACKUP= # Example: 1
# MAX_BACKUPS the number of backups to keep. When reaching the limit, the old backup will be discarded. No limit, by default
-3
View File
@@ -1,3 +0,0 @@
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
ME_CONFIG_AUTH_USERNAME= # Example: username
ME_CONFIG_AUTH_PASSWORD= # Example: Passw0rd
@@ -1 +0,0 @@
PBM_MONGODB_URI= # Example: protocol://user:password@host:port/path
-27
View File
@@ -1,27 +0,0 @@
N8N_HOST= # Example: 0.0.0.0
N8N_PORT= # Example: 5678
WEBHOOK_URL= # Example: protocol://user:password@host:port/path
DB_TYPE= # Example: postgresdb
DB_POSTGRESDB_HOST= # Example: postgres
DB_POSTGRESDB_PORT= # Example: 5432
DB_POSTGRESDB_DATABASE= # Example: n8n
DB_POSTGRESDB_USER= # Example: username
DB_POSTGRESDB_PASSWORD= # Example: Passw0rd
GENERIC_TIMEZONE= # Example: Europe/Paris
TZ= # Example: Europe/Paris
N8N_DIAGNOSTICS_ENABLED= # Example: false
N8N_VERSION_NOTIFICATIONS_ENABLED= # Example: false
N8N_TEMPLATES_ENABLED= # Example: false
N8N_BASIC_AUTH_ACTIVE= # Example: false
# N8N_PROTOCOL=${N8N_PROTOCOL}
EXECUTIONS_MODE= # Example: queue
QUEUE_BULL_REDIS_HOST= # Example: redis
QUEUE_HEALTH_CHECK_ACTIVE= # Example: true
N8N_ENCRYPTION_KEY= # Example: myhiddenkey
N8N_RUNNERS_ENABLED= # Example: true
-5
View File
@@ -1,5 +0,0 @@
POSTGRES_ROOT_PASSWORD= # Example: Passw0rd
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_DATABASE= # Example: nextcloud
POSTGRES_USER= # Example: username
POSTGRES_HOST= # Example: postgres
-1
View File
@@ -1 +0,0 @@
NC_DB= # Example: protocol://user:password@host:port/path
-52
View File
@@ -1,52 +0,0 @@
APP_NAME= # Example: "Numéris ISEP"
APP_ENV= # Example: production
APP_KEY= # Example: myhiddenkey
APP_DEBUG= # Example: false
APP_URL= # Example: protocol://user:password@host:port/path
FRONT_APP_URL= # Example: protocol://user:password@host:port/path
production= # Example: 1
LOG_CHANNEL= # Example: stack
DB_CONNECTION= # Example: mysql
DB_HOST= # Example: numeris_mysql
DB_PORT= # Example: 3306
DB_DATABASE= # Example: numeris
DB_USERNAME= # Example: username
DB_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
PMA_HOST= # Example: numeris_mysql
PMA_USER= # Example: username
PMA_PASSWORD= # Example: Passw0rd
BROADCAST_DRIVER= # Example: log
CACHE_DRIVER= # Example: file
SESSION_DRIVER= # Example: file
SESSION_LIFETIME= # Example: 120
QUEUE_DRIVER= # Example: sync
REDIS_HOST= # Example: 127.0.0.1
REDIS_PASSWORD= # Example: Passw0rd
REDIS_PORT= # Example: 6379
MAIL_DRIVER= # Example: user.name@gmail.com
MAIL_HOST= # Example: user.name@gmail.com
MAIL_PORT= # Example: user.name@gmail.com
MAIL_USERNAME= # Example: user.name@gmail.com
MAIL_PASSWORD= # Example: Passw0rd
MAIL_ENCRYPTION= # Example: user.name@gmail.com
MAIL_FROM_ADDRESS= # Example: user.name@gmail.com
MAIL_FROM_NAME= # Example: user.name@gmail.com
PUSHER_APP_ID= # Example: myhiddenid
PUSHER_APP_KEY= # Example: myhiddenkey
PUSHER_APP_SECRET= # Example: myhiddensecret
PUSHER_APP_CLUSTER= # Example: mt1
MIX_PUSHER_APP_KEY= # Example: myhiddenkey
MIX_PUSHER_APP_CLUSTER= # Example: "${PUSHER_APP_CLUSTER}"
JWT_SECRET= # Example: myhiddensecret
GOOGLE_RECAPTCHA_KEY= # Example: myhiddenkey
GOOGLE_RECAPTCHA_SECRET= # Example: myhiddensecret
-4
View File
@@ -1,4 +0,0 @@
LDAP_ADMIN_USERNAME= # Example: username
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
LDAP_USERS= # Example: username
LDAP_PASSWORDS= # Example: Passw0rd
-1
View File
@@ -1 +0,0 @@
VPN= # Example: 0.0.0.0
-122
View File
@@ -1,122 +0,0 @@
# –––––––––––––––– REQUIRED ––––––––––––––––
NODE_ENV= # Example: production
# in your terminal to generate a random value.SECRET_KEY= # Example: myhiddenkey
# `openssl rand -hex 32` in your terminal to produce this.UTILS_SECRET= # Example: myhiddensecret
# For production point these at your databases, in development the default# should work out of the box.DATABASE_URL= # Example: protocol://user:password@host:port/path
DATABASE_CONNECTION_POOL_MIN=
DATABASE_CONNECTION_POOL_MAX=
# Uncomment this to disable SSL for connecting to PostgresPGSSLMODE= # Example: disable
REDIS_URL= # Example: protocol://user:password@host:port/path
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation# for a list of available options.# Example: Use Redis Sentinel for high availability# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
URL= # Example: protocol://user:password@host:port/path
PORT= # Example: 3000
# See [documentation](docs/SERVICES.md) on running a separate collaboration# server, for normal operation this does not need to be set.COLLABORATION_URL= # Example: protocol://user:password@host:port/path
# Specify what storage system to use. Possible value is one of "s3" or "local".# For "local", the avatar images and document attachments will be saved on local disk.FILE_STORAGE= # Example: local
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under# which all attachments/images go. Make sure that the process has permissions to create# this path and also to write files to it.FILE_STORAGE_LOCAL_ROOT_DIR= # Example: /var/lib/outline/data
# Maximum allowed size for the uploaded attachment.FILE_STORAGE_UPLOAD_MAX_SIZE= # Example: 262144000
# than the document attachment maximum size.FILE_STORAGE_IMPORT_MAX_SIZE=
# and the files are temporary being automatically deleted after a period of time.FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
# To support uploading of images for avatars and document attachments in a distributed# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above.AWS_ACCESS_KEY_ID= # Example: myhiddenid
AWS_SECRET_ACCESS_KEY= # Example: myhiddenkey
AWS_REGION= # Example: xx-xxxx-x
AWS_S3_ACCELERATE_URL= # Example: protocol://user:password@host:port/path
AWS_S3_UPLOAD_BUCKET_URL= # Example: protocol://user:password@host:port/path
AWS_S3_UPLOAD_BUCKET_NAME= # Example: bucket_name_here
AWS_S3_FORCE_PATH_STYLE= # Example: true
AWS_S3_ACL= # Example: private
# –––––––––––––– AUTHENTICATION ––––––––––––––
# Third party signin credentials, at least ONE OF EITHER Google, Slack,# or Microsoft is required for a working installation or you'll have no sign-in# options.
# To configure Slack auth, you'll need to create an Application at# => https://api.slack.com/apps#SLACK_CLIENT_ID= # Example: myhiddenid
SLACK_CLIENT_SECRET= # Example: myhiddensecret
# => https://console.cloud.google.com/apis/credentials#GOOGLE_CLIENT_ID= # Example: myhiddenid
GOOGLE_CLIENT_SECRET= # Example: myhiddensecret
# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4AZURE_CLIENT_ID= # Example: myhiddenid
AZURE_CLIENT_SECRET= # Example: myhiddensecret
AZURE_RESOURCE_APP_ID= # Example: myhiddenid
OIDC_CLIENT_ID= # Example: myhiddenid
OIDC_CLIENT_SECRET= # Example: myhiddenid
OIDC_AUTH_URI= # Example: myhiddenid
OIDC_TOKEN_URI= # Example: myhiddenid
OIDC_USERINFO_URI= # Example: myhiddenid
OIDC_LOGOUT_URI= # Example: myhiddenid
OIDC_USERNAME_CLAIM= # Example: myhiddenid
OIDC_DISPLAY_NAME= # Example: myhiddenid
OIDC_SCOPES= # Example: myhiddenid
OIDC_USERNAME_CLAIM= # Example: myhiddenid
OIDC_DISPLAY_NAME= # Example: myhiddenid
# Space separated auth scopes.
# To configure the GitHub integration, you'll need to create a GitHub App at# => https://github.com/settings/apps#GITHUB_CLIENT_ID= # Example: myhiddenid
GITHUB_CLIENT_SECRET= # Example: myhiddensecret
GITHUB_APP_NAME=
GITHUB_APP_ID= # Example: myhiddenid
GITHUB_APP_PRIVATE_KEY= # Example: myhiddenkey
# To configure Discord auth, you'll need to create a Discord Application at# => https://discord.com/developers/applications/#DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_CLIENT_SECRET= # Example: myhiddensecret
# integrated with.# metadata such as nicknames, server icon and name.DISCORD_SERVER_ID= # Example: myhiddenid
# allowed to access Outline. If this is not set, all members of the server# will be allowed to access Outline.DISCORD_SERVER_ROLES=
# –––––––––––––––– OPTIONAL ––––––––––––––––
# required if you do not use an external reverse proxy. See documentation:# https://wiki.generaloutline.com/share/1c922644-40d8-41fe-98f9-df2b67239d45SSL_KEY= # Example: myhiddenkey
SSL_CERT=
# If using a Cloudfront/Cloudflare distribution or similar it can be set below.CDN_URL= # Example: protocol://user:password@host:port/path
# Auto-redirect to https in production. The default is true but you may set to# false if you can be sure that SSL is terminated at an external loadbalancer.FORCE_HTTPS= # Example: true
# Have the installation check for updates by sending anonymized statistics to# the maintainersENABLE_UPDATES= # Example: true
# available memory by 512 for a rough estimateWEB_CONCURRENCY= # Example: 1
# You can remove this line if your reverse proxy already logs incoming http# requests and this ends up being duplicativeDEBUG= # Example: http
# Configure lowest severity level for server logs. Should be one of# error, warn, info, http, verbose, debug and sillyLOG_LEVEL= # Example: info
# For a complete Slack integration with search and posting to channels the# following configs are also needed, some more details# => https://wiki.generaloutline.com/share/be25efd1-b3ef-4450-b8e5-c4a4fc11e02a#SLACK_VERIFICATION_TOKEN= # Example: myhiddentoken
SLACK_APP_ID= # Example: myhiddenid
SLACK_MESSAGE_ACTIONS= # Example: true
# and do not forget to whitelist your domain name in the app settingsDROPBOX_APP_KEY= # Example: myhiddenkey
# Optionally enable Sentry (sentry.io) to track errors and performance,SENTRY_DSN=
SENTRY_TUNNEL=
SMTP_HOST=
SMTP_PORT=
SMTP_USERNAME= # Example: username
SMTP_PASSWORD= # Example: Passw0rd
SMTP_FROM_EMAIL= # Example: user.name@gmail.com
SMTP_REPLY_EMAIL= # Example: user.name@gmail.com
SMTP_TLS_CIPHERS= # Example: 0.0.0.0
SMTP_SECURE= # Example: true
# The default interface language. See translate.getoutline.com for a list of# available language codes and their rough percentage translated.# DEFAULT_LANGUAGE=en_USDEFAULT_LANGUAGE= # Example: fr_FR
# Optionally enable rate limiter at application web serverRATE_LIMITER_ENABLED= # Example: true
# Configure default throttling parameters for rate limiterRATE_LIMITER_REQUESTS= # Example: 1000
RATE_LIMITER_DURATION_WINDOW= # Example: 60
# Iframely API configIFRAMELY_URL= # Example: protocol://user:password@host:port/path
IFRAMELY_API_KEY= # Example: myhiddenkey
-8
View File
@@ -1,8 +0,0 @@
WORDPRESS_DB_HOST= # Example: oxivia_mysql
WORDPRESS_DB_NAME= # Example: oxivia
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: oxivia
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
-5
View File
@@ -1,5 +0,0 @@
FLASK_APP= # Example: /app/server.py
FLASK_ENV= # Example: debug
FLASK_DEBUG= # Example: 1
FLASK_HOST= # Example: pandoc
FLASK_PORT= # Example: 80
-3
View File
@@ -1,3 +0,0 @@
EMAIL= # Example: user.name@gmail.com
PASSWORD= # Example: Passw0rd
DEVICE_NAME= # Example: contabo
-25
View File
@@ -1,25 +0,0 @@
# Database / Postgres service configurationPOSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
# Postgres database name "peertube"POSTGRES_DB= # Example: peertube
# Editable only with a suffix :#POSTGRES_DB=peertube_prod#PEERTUBE_DB_SUFFIX=_prodPEERTUBE_DB_USERNAME= # Example: username
PEERTUBE_DB_PASSWORD= # Example: Passw0rd
PEERTUBE_DB_SSL= # Example: false
# Default to Postgres service name "postgres" in docker-compose.ymlPEERTUBE_DB_HOSTNAME= # Example: postgres
# Server configurationPEERTUBE_WEBSERVER_HOSTNAME= # Example: peertube.marcpartensky.fr
# If you do not use https and a reverse-proxy in docker-compose.ymlPEERTUBE_WEBSERVER_PORT= # Example: 80
PEERTUBE_WEBSERVER_HTTPS= # Example: false
PEERTUBE_TRUST_PROXY= # Example: ["127.0.0.1", "loopback", "172.16.0.0/12", "192.168.0.0/16", "10.0.0.0/8"]
# If you use a Custom SMTP server# Default to Postfix service name "postfix" in docker-compose.yml# May be the hostname of your Custom SMTP serverPEERTUBE_SMTP_HOSTNAME= # Example: marcpartensky.com
PEERTUBE_SMTP_PORT= # Example: 25
PEERTUBE_SMTP_FROM= # Example: noreply@marcpartensky.com
PEERTUBE_SMTP_TLS= # Example: false
PEERTUBE_SMTP_DISABLE_STARTTLS= # Example: false
PEERTUBE_ADMIN_EMAIL= # Example: user.name@gmail.com
# Postfix service configurationPOSTFIX_myhostname= # Example: marcpartensky.com
OPENDKIM_DOMAINS= # Example: marcpartensky.com
# see https://github.com/wader/postfix-relay/pull/18OPENDKIM_RequireSafeKeys= # Example: myhiddenkey
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\#PEERTUBE_SIGNUP_ENABLED=true#PEERTUBE_TRANSCODING_ENABLED=true#PEERTUBE_CONTACT_FORM_ENABLED=truePEERTUBE_SECRET= # Example: myhiddensecret
-5
View File
@@ -1,5 +0,0 @@
POSTGRES_USER= # Example: username
POSTGRES_PASS= # Example: Passw0rd
POSTGRES_PORT= # Example: 5432
POSTGRES_HOST= # Example: postgres
# DBLISTCRON_SCHEDULE= # Example: "0 5 * * *"
-2
View File
@@ -1,2 +0,0 @@
PGADMIN_DEFAULT_EMAIL= # Example: user.name@gmail.com
PGADMIN_DEFAULT_PASSWORD= # Example: Passw0rd
-10
View File
@@ -1,10 +0,0 @@
POSTGRES_HOST= # Example: postgres
POSTGRES_DB= # Example: authentik dockerdash etesync etherpad focalboard gitea grafana matrix nextcloud owncloud peertube postgres vaultwarden wallabag website wger
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_EXTRA_OPTS= # Example: -Z6 --schema=public --blobs
SCHEDULE= # Example: @daily
BACKUP_KEEP_DAYS= # Example: 7
BACKUP_KEEP_WEEKS= # Example: 4
BACKUP_KEEP_MONTHS= # Example: 6
HEALTHCHECK_PORT= # Example: 8080
-1
View File
@@ -1 +0,0 @@
DATABASE_URL= # Example: protocol://user:password@host:port/path
-3
View File
@@ -1,3 +0,0 @@
POSTGRES_DB= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
-3
View File
@@ -1,3 +0,0 @@
PGRST_DB_URI= # Example: protocol://user:password@host:port/path
PGRST_DB_SCHEMA= # Example: public
PGRST_DB_ANON_ROLE= # Example: izitdone
-2
View File
@@ -1,2 +0,0 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
-3
View File
@@ -1,3 +0,0 @@
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
DB_PASSWORD= # Example: Passw0rd
-2
View File
@@ -1,2 +0,0 @@
REGISTRY_HTTP_SECRET= # Example: myhiddensecret
-2
View File
@@ -1,2 +0,0 @@
RP_EMAIL= # Example: user.name@gmail.com
RP_PASSWORD= # Example: Passw0rd
-30
View File
@@ -1,30 +0,0 @@
# POSTGRES_HOST=postgres# POSTGRES_PORT=5432# POSTGRES_DB=postgres# POSTGRES_SSL_CERT=
PUBLIC_URL= # Example: protocol://user:password@host:port/path
__DEV__CLIENT_URL= # Example: myhiddensecret
# NODE_ENV=productionNODE_ENV= # Example: development
PORT= # Example: 3000
# PrinterCHROME_TOKEN= # Example: myhiddentoken
TOKEN= # Example: myhiddentoken
CHROME_URL= # Example: protocol://user:password@host:port/path
# RedisREDIS_URL= # Example: protocol://user:password@host:port/path
# PostgresDATABASE_URL= # Example: protocol://user:password@host:port/path
SECRET_KEY= # Example: myhiddenkey
ACCESS_TOKEN_SECRET= # Example: myhiddentoken
REFRESH_TOKEN_SECRET= # Example: myhiddentoken
JWT_SECRET= # Example: myhiddensecret
JWT_EXPIRY_TIME= # Example: 604800
STORAGE_BUCKET= # Example: default
# STORAGE_REGION=# STORAGE_ENDPOINT=# STORAGE_USE_SSL=false# PDF_DELETION_TIME=## -- Storage (Minio) --STORAGE_URL= # Example: protocol://user:password@host:port/path
STORAGE_ENDPOINT= # Example: minio
STORAGE_PORT= # Example: 9000
# STORAGE_REGION: us-east-1 # OptionalSTORAGE_BUCKET= # Example: resume
STORAGE_ACCESS_KEY= # Example: myhiddenkey
STORAGE_SECRET_KEY= # Example: myhiddenkey
STORAGE_USE_SSL= # Example: false
-7
View File
@@ -1,7 +0,0 @@
MYSQL_HOST= # Example: 192.168.0.145
MYSQL_DATABASE= # Example: prospectix
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
DATA_PATH= # Example: "data.yaml"
SCHTROUMPFIX_JS= # Example: "schtroumpfix.js"
-10
View File
@@ -1,10 +0,0 @@
# dbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
MYSQL_LOG_CONSOLE= # Example: true
# seafileDB_HOST= # Example: db
DB_ROOT_PASSWD= # Example: Passw0rd
# # Optional, default is UTC. Should be uncomment and set to your local time zone.TIME_ZONE= # Example: Europe/Paris
SEAFILE_ADMIN_EMAIL= # Example: user.name@gmail.com
SEAFILE_ADMIN_PASSWORD= # Example: Passw0rd
# Whether to use https or not.SEAFILE_SERVER_LETSENCRYPT= # Example: false
# Specifies your host name if https is enabled.SEAFILE_SERVER_HOSTNAME= # Example: seafile.marcpartensky.com
-29
View File
@@ -1,29 +0,0 @@
# This is a template dotenv file. You should copy it and then modify it to fit# your setup. These environment variables won't do anything unless copied into# a file called `.env.test`. There, they'll be used to determine information# about the test environment.## This is useful because we want the test environment to have a different# configuration from the development environment. That way, we can run# the automated test suites without worrying about their impact on the database# we use for development.## For more information, see the Automated Testing Documentation.# https://docs.suitecrm.com/developer/automatedtesting/
#== Install Test Suite:
# MYSQL or MSSQLDATABASE_DRIVER= # Example: MYSQL
# Path to database serverDATABASE_HOST= # Example: localhost
# Name of the databaseDATABASE_NAME= # Example: automated_tests
DATABASE_USER= # Example: username
DATABASE_PASSWORD= # Example: Passw0rd
#== Acceptance, API, and Install Test Suites:
INSTANCE_URL= # Example: protocol://user:password@host:port/path
INSTANCE_ADMIN_USER= # Example: username
INSTANCE_ADMIN_PASSWORD= # Example: Passw0rd
#== API Test Suite:
INSTANCE_CLIENT_ID= # Example: myhiddenid
INSTANCE_CLIENT_SECRET= # Example: myhiddensecret
# Default web browser for acceptance and install testsBROWSER= # Example: chrome
# Webdriver hostname (Selenium, Local or Cloud Testing)WEBDRIVER_HOST= # Example: 127.0.0.1
# Webdriver port (Selenium, Local or Cloud Testing)WEBDRIVER_PORT= # Example: 4444
-5
View File
@@ -1,5 +0,0 @@
SYNC_HOST= # Example: 0.0.0.0
SYNC_MASTER_SECRET= # Example: myhiddensecret
SYNC_TOKENSERVER__DATABASE_URL= # Example: myhiddentoken
SYNC_TOKENSERVER__RUN_MIGRATIONS= # Example: myhiddentoken
SYNC_DATABASE_URL= # Example: protocol://user:password@host:port/path
-5
View File
@@ -1,5 +0,0 @@
TABLEAU_USERNAME= # Example: username
TABLEAU_PASSWORD= # Example: Passw0rd
TSM_REMOTE_UID= # Example: myhiddenid
TSM_REMOTE_USERNAME= # Example: username
LICENSE_KEY= # Example: myhiddenkey
-114
View File
@@ -1,114 +0,0 @@
#!/usr/bin/env python
import os
import glob
url = "protocol://user:password@host:port/path"
ip = "0.0.0.0"
mail = "user.name@gmail.com"
user = "username"
password = "Passw0rd"
id = "myhiddenid"
key = "myhiddenkey"
token = "myhiddentoken"
secret = "myhiddensecret"
secret_keywords = {
"password": password,
"pass": password,
"pwd": password,
"pw": password,
"id": id,
"key": key,
"token": token,
"client": secret,
"secret": secret,
"url": url,
"uri": url,
"nc_db": url,
"ip": ip,
"vpn": ip,
"mail": mail,
"user": user,
}
def create_template_from_env_file(
file_path,
):
"""
Crée un fichier template à partir d'un fichier .env.
Pour chaque variable, si la clé ne contient pas de mot sensible, la valeur est affichée en commentaire.
Sinon, seule la clé est indiquée avec une valeur vide.
"""
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
template_lines = []
for line in lines:
sensitive = False
stripped = line.strip()
# Conserver les lignes vides
if not stripped:
template_lines.append(line)
continue
# If it is a comment
if stripped.startswith("#"):
# that doesn't contain sensitive information
for keyword in secret_keywords.keys():
if keyword in stripped.lower():
sensitive = True
break
# then add it
if not sensitive:
template_lines.append(stripped)
continue
# If not a comment and doesnt contain "=" it is an error dont add the line but print it
if "=" not in stripped:
print("Error:", file_path, stripped)
continue
# Traiter les lignes de variables
key, value = line.split("=", 1)
key_part = key.strip()
value_part = value.split('#')[0].strip() # Ignorer les commentaires en fin de ligne
# Vérifier si la clé contient un mot sensible
for keyword in secret_keywords.keys():
if keyword in key_part.lower():
sensitive = True
break
if sensitive:
template_lines.append(f"{key_part}= # Example: {secret_keywords[keyword]}\n")
continue
# Si la clé ne contient pas de mot sensible
if value_part:
template_lines.append(f"{key_part}= # Example: {value_part}\n")
else:
template_lines.append(f"{key_part}=\n")
# Générer le nom du fichier template
base_name = os.path.basename(file_path)
file_name = base_name.split('.')[0]
template_file = f"{file_name}.template.env"
with open(template_file, 'w', encoding='utf-8') as f:
f.writelines(template_lines)
print(f"{template_file}")
def main():
# Rechercher tous les fichiers .env sauf les templates existants
env_files = glob.glob("*.env")
for file in env_files:
if not file.endswith(".template.env"):
create_template_from_env_file(file)
if __name__ == "__main__":
main()
-13
View File
@@ -1,13 +0,0 @@
TIMEASSISTANT_NEXTCLOUD_URL= # Example: protocol://user:password@host:port/path
TIMEASSISTANT_NEXTCLOUD_USER= # Example: username
TIMEASSISTANT_NEXTCLOUD_PASSWORD= # Example: Passw0rd
TIMEASSISTANT_NEXTCLOUD_BOARD= # Example: "-Todolist"
GRANIAN_RELOAD= # Example: 0
GRANIAN_INTERFACE= # Example: asgi
GRANIAN_HOST= # Example: 0.0.0.0
GRANIAN_PORT= # Example: 8000
GRANIAN_LOGLEVEL= # Example: info
GRANIAN_LOG_ACCESS_ENABLED= # Example: 1
-4
View File
@@ -1,4 +0,0 @@
POSTGRES_DB= # Example: todoapp
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
# POSTGRES_PORT=5432
-16
View File
@@ -1,16 +0,0 @@
TRAEFIK_PROVIDERS_DOCKER= # Example: myhiddenid
TRAEFIK_PROVIDERS_FILE_FILENAME= # Example: myhiddenid
CLOUDFLARE_DNS_API_TOKEN= # Example: myhiddentoken
CLOUDFLARE_ZONE_API_TOKEN= # Example: myhiddentoken
TRAEFIK_API_INSECURE= # Example: false
TRAEFIK_API_DASHBOARD= # Example: true
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##TRAEFIK_API_DEBUG= # Example: true
TRAEFIK_ENTRYPOINT_WEB_ADDRESS= # Example: :80
TRAEFIK_ENTRYPOINT_WEBSECURE_ADDRESS= # Example: :443
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_TLSCHALLENGE= # Example: true
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_EMAIL= # Example: user.name@gmail.com
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_STORAGE= # Example: /letsencrypt/acme.json
TRAEFIK_LOG_LEVEL= # Example: DEBUG
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_TO= # Example: websecure
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME= # Example: https
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT= # Example: true
-1
View File
@@ -1 +0,0 @@
TOKEN= # Example: myhiddentoken
-1
View File
@@ -1 +0,0 @@
SECRET_KEY= # Example: myhiddenkey
-75
View File
@@ -1,75 +0,0 @@
ADMIN_TOKEN= # Example: myhiddentoken
DATABASE_URL= # Example: protocol://user:password@host:port/path
WEBSOCKET_ENABLED= # Example: true
WEBSOCKET_ADDRESS= # Example: 0.0.0.0
WEBSOCKET_PORT= # Example: 3012
# shellcheck disable=SC2034,SC2148## Vaultwarden Configuration File## Uncomment any of the following lines to change the defaults###### By default, Vaultwarden expects for this file to be named ".env" and located## in the current working directory. If this is not the case, the environment## variable ENV_FILE can be set to the location of this file prior to starting## Vaultwarden.
## Main data folder# DATA_FOLDER=data
## When using SQLite, this is the path to the DB file, default to %DATA_FOLDER%/db.sqlite3## Details: https://docs.diesel.rs/diesel/mysql/struct.MysqlConnection.html## Details:## - https://docs.diesel.rs/diesel/pg/struct.PgConnection.html## - https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
## Database max connections## Define the size of the connection pool used for connecting to the database.# DATABASE_MAX_CONNS=10
## Database connection initialization## Allows SQL statements to be run whenever a new database connection is created.## This is mainly useful for connection-scoped pragmas.## If empty, a database-specific default is used:## - SQLite: "PRAGMA busy_timeout = 5000; PRAGMA synchronous = NORMAL;"## - MySQL: ""## - PostgreSQL: ""# DATABASE_CONN_INIT=""
# ICON_CACHE_FOLDER=data/icon_cache# ATTACHMENTS_FOLDER=data/attachments# SENDS_FOLDER=data/sends# TMP_FOLDER=data/tmp
## Templates data folder, by default uses embedded templates## Check source code to see the format# TEMPLATES_FOLDER=/path/to/templates## Automatically reload the templates for every request, slow, use only for development# RELOAD_TEMPLATES=false
## Cache time-to-live for successfully obtained icons, in seconds (0 is "forever")# ICON_CACHE_TTL=2592000## Cache time-to-live for icons which weren't available, in seconds (0 is "forever")# ICON_CACHE_NEGTTL=259200
## Web vault settings# WEB_VAULT_FOLDER=web-vault/# WEB_VAULT_ENABLED=true
## Enables websocket notifications# WEBSOCKET_ENABLED=false
## Controls the WebSocket server address and port# WEBSOCKET_ADDRESS=0.0.0.0# WEBSOCKET_PORT=3012
## To control this on a per-org basis instead, use the "Disable Send" org policy.# SENDS_ALLOWED=true
# EMERGENCY_ACCESS_ALLOWED=true
## Controls whether event logging is enabled for organizations## This setting applies to organizations.## Disabled by default. Also check the EVENT_CLEANUP_SCHEDULE and EVENTS_DAYS_RETAIN settings.# ORG_EVENTS_ENABLED=false
## Number of days to retain events stored in the database.## If unset (the default), events are kept indefinitely and the scheduled job is disabled!# EVENTS_DAYS_RETAIN=
## BETA FEATURE: Groups## Controls whether group support is enabled for organizations## This setting applies to organizations.## Disabled by default because this is a beta feature, it contains known issues!## KNOW WHAT YOU ARE DOING!# ORG_GROUPS_ENABLED=false
## Job scheduler settings#### Job schedules use a cron-like syntax (as parsed by https://crates.io/crates/cron),## and are always in terms of UTC time (regardless of your local time zone settings).#### The schedule format is a bit different from crontab as crontab does not contains seconds.## You can test the the format here: https://crontab.guru, but remove the first digit!## SEC MIN HOUR DAY OF MONTH MONTH DAY OF WEEK## "0 30 9,12,15 1,15 May-Aug Mon,Wed,Fri"## "0 30 * * * * "## "0 30 1 * * * "#### How often (in ms) the job scheduler thread checks for jobs that need running.## Set to 0 to globally disable scheduled jobs.# JOB_POLL_INTERVAL_MS=30000#### Cron schedule of the job that checks for Sends past their deletion date.# SEND_PURGE_SCHEDULE="0 5 * * * *"#### Cron schedule of the job that checks for trashed items to delete permanently.# TRASH_PURGE_SCHEDULE="0 5 0 * * *"#### Cron schedule of the job that checks for incomplete 2FA logins.## Defaults to once every minute. Set blank to disable this job.# INCOMPLETE_2FA_SCHEDULE="30 * * * * *"#### Cron schedule of the job that sends expiration reminders to emergency access grantors.# EMERGENCY_NOTIFICATION_REMINDER_SCHEDULE="0 3 * * * *"#### Cron schedule of the job that grants emergency access requests that have met the required wait time.# EMERGENCY_REQUEST_TIMEOUT_SCHEDULE="0 7 * * * *"#### Cron schedule of the job that cleans old events from the event table.## Defaults to daily. Set blank to disable this job. Also without EVENTS_DAYS_RETAIN set, this job will not start.# EVENT_CLEANUP_SCHEDULE="0 10 0 * * *"
## Enable extended logging, which shows timestamps and targets in the logs# EXTENDED_LOGGING=true
## Timestamp format used in extended logging.## Format specifiers: https://docs.rs/chrono/latest/chrono/format/strftime# LOG_TIMESTAMP_FORMAT="%Y-%m-%d %H:%M:%S.%3f"
## Logging to file# LOG_FILE=/path/to/log
## Logging to Syslog## This requires extended logging# USE_SYSLOG=false
## Log level## Change the verbosity of the log output## Setting it to "trace" or "debug" would also show logs for mounted## routes and static file, websocket and alive requests# LOG_LEVEL=Info
## Enable WAL for the DB## Note that if the DB already has WAL enabled, you will also need to disable WAL in the DB,## this setting only prevents Vaultwarden from automatically enabling it on start.## Please read project wiki page about this setting first before changing the value as it can## cause performance degradation or might render the service unable to start.# ENABLE_DB_WAL=true
## Database connection retries# DB_CONNECTION_RETRIES=15
## Icon service## The predefined icon services are: internal, bitwarden, duckduckgo, google.## which is replaced with the domain. For example: `https://icon.example.com/domain/{}`.#### `internal` refers to Vaultwarden's built-in icon fetching implementation.## If an external service is set, an icon request to Vaultwarden will return an HTTP## redirect to the corresponding icon at the external service. An external service may## be useful if your Vaultwarden instance has no external network connectivity, or if## you are concerned that someone may probe your instance to try to detect whether icons## for certain sites have been cached.# ICON_SERVICE=internal
## Icon redirect code## The HTTP status code to use for redirects to an external icon service.## The supported codes are 301 (legacy permanent), 302 (legacy temporary), 307 (temporary), and 308 (permanent).## Temporary redirects are useful while testing different icon services, but once a service# ICON_REDIRECT_CODE=302
## Disable icon downloading## Set to true to disable icon downloading in the internal icon service.## This still serves existing icons from $ICON_CACHE_FOLDER, without generating any external## network requests. $ICON_CACHE_TTL must also be set to 0; otherwise, the existing icons## will be deleted eventually, but won't be downloaded again.# DISABLE_ICON_DOWNLOAD=false
## Icon download timeout## Configure the timeout value when downloading the favicons.## The default is 10 seconds, but this could be to low on slower network connections# ICON_DOWNLOAD_TIMEOUT=10
## Icon blacklist Regex## NOTE: Always enclose this regex withing single quotes!# ICON_BLACKLIST_REGEX='^(192\.168\.0\.[0-9]+|192\.168\.1\.[0-9]+)$'
## Disable 2FA remember## Note that the checkbox would still be present, but ignored.# DISABLE_2FA_REMEMBER=false
# SIGNUPS_ALLOWED=true
# SIGNUPS_VERIFY=false
## If SIGNUPS_VERIFY is set to true, this limits how many seconds after the last time# SIGNUPS_VERIFY_RESEND_TIME=3600
# SIGNUPS_VERIFY_RESEND_LIMIT=6
## even if SIGNUPS_ALLOWED is set to false# SIGNUPS_DOMAINS_WHITELIST=example.com,example.net,example.org
## One option is to use 'openssl rand -base64 48'## If not set, the admin panel is disabled
## meant to be used with the use of a separate auth layer in front
# INVITATIONS_ALLOWED=true# INVITATION_ORG_NAME=Vaultwarden
# INVITATION_EXPIRATION_HOURS=120
## Per-organization attachment storage limit (KB)## Max kilobytes of attachment storage allowed per organization.# ORG_ATTACHMENT_LIMIT=
## Number of days to wait before auto-deleting a trashed item.## If unset (the default), trashed items are not auto-deleted.# TRASH_AUTO_DELETE_DAYS=
# INCOMPLETE_2FA_TIME_LIMIT=3
## SMTP service is not configured. Not recommended for publicly-accessible instances
## Domain settings## The domain must match the address from where you access the server## It's recommended to configure this value, otherwise certain functionality might not work,## For U2F to work, the server must use HTTPS, you can use Let's Encrypt for free certs# DOMAIN=https://vw.domain.tld:8443
## Allowed iframe ancestors (Know the risks!)## Allows other domains to embed the web vault into an iframe, useful for embedding into secure intranets# ALLOWED_IFRAME_ANCESTORS=
# LOGIN_RATELIMIT_SECONDS=60## Allow a burst of requests of up to this size, while maintaining the average indicated by `LOGIN_RATELIMIT_SECONDS`.## Note that this applies to both the login and the 2FA, so it's recommended to allow a burst size of at least 2.# LOGIN_RATELIMIT_MAX_BURST=10
# ADMIN_RATELIMIT_SECONDS=300## Allow a burst of requests of up to this size, while maintaining the average indicated by `ADMIN_RATELIMIT_SECONDS`.# ADMIN_RATELIMIT_MAX_BURST=3
## You can optionally specify a custom OTP server# YUBICO_SERVER=http://yourdomain.com/wsapi/2.0/verify
## Duo Settings## Create an account and protect an application as mentioned in this link (only the first step, not the rest):## Then set the following options, based on the values obtained from the last step:# DUO_HOST=<API Hostname>## ignoring the fields that ask for the values that you already configured beforehand.
## Authenticator Settings#### According to the RFC6238 (https://tools.ietf.org/html/rfc6238),## You can disable this, so that only the current TOTP Code is allowed.# AUTHENTICATOR_DISABLE_TIME_DRIFT=false
## Rocket specific settings# ROCKET_ADDRESS=0.0.0.0# ROCKET_PORT=80 # Defaults to 80 in the Docker images, or 8000 otherwise.# ROCKET_WORKERS=10
# SMTP_HOST=smtp.domain.tld# SMTP_FROM=vaultwarden@domain.tld# SMTP_FROM_NAME=Vaultwarden# SMTP_PORT=587 # Ports 587 (submission) and 25 (smtp) are standard without encryption and with encryption via STARTTLS (Explicit TLS). Port 465 (submissions) is used for encrypted submission (Implicit TLS).# SMTP_TIMEOUT=15
## Defaults for SSL is "Plain" and "Login" and nothing for Non-SSL connections.## Possible values: ["Plain", "Login", "Xoauth2"].# SMTP_AUTH_MECHANISM="Plain"
## By default this value should be is on the machine's hostname,# HELO_NAME=
# SMTP_EMBED_IMAGES=false
## SMTP debugging## When set to true this will output very detailed SMTP messages.# SMTP_DEBUG=false
# vim: syntax=ini
-1
View File
@@ -1 +0,0 @@
VNC_PW= # Example: Passw0rd
-13
View File
@@ -1,13 +0,0 @@
SYMFONY__ENV__DATABASE_DRIVER= # Example: pdo_pgsql
SYMFONY__ENV__DATABASE_HOST= # Example: postgres
SYMFONY__ENV__DATABASE_PORT= # Example: 5432
SYMFONY__ENV__DATABASE_NAME= # Example: wallabag
SYMFONY__ENV__DATABASE_USER= # Example: username
SYMFONY__ENV__DATABASE_PASSWORD= # Example: Passw0rd
# SYMFONY__ENV__DATABASE_CHARSET=utf8mb4SYMFONY__ENV__DATABASE_CHARSET= # Example: utf8
SYMFONY__ENV__MAILER_HOST= # Example: user.name@gmail.com
SYMFONY__ENV__MAILER_USER= # Example: user.name@gmail.com
SYMFONY__ENV__MAILER_PASSWORD= # Example: Passw0rd
SYMFONY__ENV__FROM_EMAIL= # Example: user.name@gmail.com
SYMFONY__ENV__DOMAIN_NAME= # Example: https://wallabag.marcpartensky.fr
SYMFONY__ENV__SERVER_NAME= # Example: "Wallabag of Marc Partensky"
-15
View File
@@ -1,15 +0,0 @@
DJANGO_SETTINGS_MODULE= # Example: django_project.settings
ID_CLIENT= # Example: myhiddenid
SECRET_KEY_CLIENT= # Example: myhiddenkey
SECRET_KEY= # Example: myhiddenkey
REDIS_URL= # Example: protocol://user:password@host:port/path
POSTGRES_DB= # Example: website
POSTGRES_NAME= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_HOST= # Example: postgres
POSTGRES_PORT= # Example: 5432
DEBUG= # Example: false
DJANGO_SUPERUSER_USERNAME= # Example: username
DJANGO_SUPERUSER_EMAIL= # Example: user.name@gmail.com
DJANGO_SUPERUSER_PASSWORD= # Example: Passw0rd

Some files were not shown because too many files have changed in this diff Show More