diff --git a/dumbpad/compose.yml b/dumbpad/compose.yml new file mode 100644 index 0000000..709bee4 --- /dev/null +++ b/dumbpad/compose.yml @@ -0,0 +1,28 @@ +services: + dumbpad: + image: dumbwareio/dumbpad:latest + container_name: dumbpad + restart: unless-stopped + ports: + - ${DUMBPAD_PORT:-3000}:3000 + volumes: + - ${DUMBPAD_DATA_PATH:-./data}:/app/data + environment: + # The title shown in the web interface + SITE_TITLE: ${DUMBPAD_SITE_TITLE:-DumbPad} + # Optional PIN protection (leave empty to disable) + DUMBPAD_PIN: ${DUMBPAD_PIN:-} + # The base URL for the application + BASE_URL: ${DUMBPAD_BASE_URL:-notes.bapasqui.com} # Use ALLOWED_ORIGINS below to restrict cors to specific origins + # (OPTIONAL) + # Usage: Comma-separated list of urls: http://localhost:port,http://internalip:port,https://base.proxy.tld,https://authprovider.domain.tld + # ALLOWED_ORIGINS: ${DUMBPAD_ALLOWED_ORIGINS:-http://localhost:3000} # Comment out to allow all origins (*) + # LOCKOUT_TIME: ${DUMBPAD_LOCK_TIME:-15} # Customize pin lockout time (if empty, defaults to 15 in minutes) + MAX_ATTEMPTS: ${DUMBPAD_MAX_ATTEMPTS:-3} # Customize pin max attempts (if empty, defaults to 5) + COOKIE_MAX_AGE: ${DUMBPAD_COOKIE_MAX_AGE:-24} # Customize maximum age of cookies primarily used for pin verification (default 24) in hours + # PAGE_HISTORY_COOKIE_AGE: ${DUMBPAD_PAGE_HISTORY_COOKIE_AGE:-365} # Customize age of cookie to show the last notepad opened (default 365 | max 400) in days - shows default notepad on load if expired + + # MARKDOWN CODE SYNTAX HIGHLIGHTING (only use below if you want to restrict to specific languages): + # By default, DumbPad includes support for all ~180 languages supported by highlight.js. + # view entire list and usage in /docs/MARKDOWN_SYNTAX_HIGHLIGHTING_USAGE.md + # HIGHLIGHT_LANGUAGES=c,csharp,css,dockerfile,go,html,java,javascript,json,kotlin,markdown,perl,php,python,ruby,sql,swift,typescript,xml,yaml diff --git a/forgejo/.env-example b/forgejo/.env-example new file mode 100644 index 0000000..7ab85c3 --- /dev/null +++ b/forgejo/.env-example @@ -0,0 +1,4 @@ +DB_PASSWORD= +RUNNER_TOKEN= +SSH_DOMAIN= +SSH_PORT= diff --git a/forgejo/compose.yml b/forgejo/compose.yml new file mode 100644 index 0000000..f5c497c --- /dev/null +++ b/forgejo/compose.yml @@ -0,0 +1,104 @@ +services: + forgejo: + image: codeberg.org/forgejo/forgejo:7 + container_name: forgejo + environment: + - USER_UID=1000 + - USER_GID=1000 + - FORGEJO__database__DB_TYPE=postgres + - FORGEJO__database__HOST=db:5432 + - FORGEJO__database__NAME=forgejo + - FORGEJO__database__USER=forgejo + - FORGEJO__database__PASSWD=${DB_PASSWORD} + - FORGEJO__cache__ADAPTER=redis + - FORGEJO__cache__HOST=redis://redis:6379/0 + - FORGEJO__session__PROVIDER=redis + - FORGEJO__session__PROVIDER_CONFIG=redis://redis:6379/1 + - FORGEJO__actions__ENABLED=true + - FORGEJO__service__SHOW_REGISTRATION_BUTTON=false + - FORGEJO__server__SSH_PORT=${SSH_PORT} + - FORGEJO__server__SSH_DOMAIN=${SSH_DOMAIN} + - FORGEJO__openid__ENABLE_OPENID_SIGNIN=false + - FORGEJO__openid__ENABLE_OPENID_SIGNUP=false + volumes: + - forgejo-data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3000:3000" + - "222:22" + depends_on: + - db + - redis + networks: + - forgejo-network + restart: unless-stopped + + # runner: + # image: code.forgejo.org/forgejo/runner:3.3.0 + # container_name: forgejo-runner + # environment: + # - DOCKER_HOST=tcp://docker-in-docker:2376 + # - DOCKER_TLS_VERIFY=1 + # - DOCKER_CERT_PATH=/certs/client + # volumes: + # - runner-data:/data + # - docker-certs:/certs/client:ro + # depends_on: + # - forgejo + # - docker-in-docker + # networks: + # - forgejo-network + # restart: unless-stopped + # command: > + # sh -c " + # while ! nc -z forgejo 3000; do sleep 1; done; + # forgejo-runner daemon + # " + + docker-in-docker: + image: docker:dind + container_name: forgejo-dind + privileged: true + environment: + - DOCKER_TLS_CERTDIR=/certs + volumes: + - docker-certs:/certs + - dind-data:/var/lib/docker + networks: + - forgejo-network + restart: unless-stopped + + db: + image: postgres:15-alpine + container_name: forgejo-db + environment: + - POSTGRES_USER=forgejo + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=forgejo + volumes: + - postgres-data:/var/lib/postgresql/data + networks: + - forgejo-network + restart: unless-stopped + + redis: + image: redis:7-alpine + container_name: forgejo-redis + volumes: + - redis-data:/data + networks: + - forgejo-network + restart: unless-stopped + +volumes: + forgejo-data: + runner-data: + docker-certs: + dind-data: + postgres-data: + redis-data: + +networks: + forgejo-network: + driver: bridge diff --git a/glance/.env-example b/glance/.env-example new file mode 100644 index 0000000..d6a22c8 --- /dev/null +++ b/glance/.env-example @@ -0,0 +1,3 @@ +# Variables defined here will be available to use anywhere in the config with the syntax ${MY_SECRET_TOKEN} +# Note: making changes to this file requires re-running docker compose up +MY_SECRET_TOKEN= diff --git a/glance/assets/user.css b/glance/assets/user.css new file mode 100644 index 0000000..e69de29 diff --git a/glance/compose.yml b/glance/compose.yml new file mode 100644 index 0000000..f046791 --- /dev/null +++ b/glance/compose.yml @@ -0,0 +1,14 @@ +services: + glance: + container_name: glance + image: glanceapp/glance + restart: unless-stopped + volumes: + - ./config:/app/config + - ./assets:/app/assets + - /etc/localtime:/etc/localtime:ro + # Optionally, also mount docker socket if you want to use the docker containers widget + # - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 8080:8080 + env_file: .env diff --git a/glance/config/glance.yml b/glance/config/glance.yml new file mode 100644 index 0000000..66ff2f9 --- /dev/null +++ b/glance/config/glance.yml @@ -0,0 +1,12 @@ +server: + assets-path: /app/assets + +theme: + # Note: assets are cached by the browser, changes to the CSS file + # will not be reflected until the browser cache is cleared (Ctrl+F5) + custom-css-file: /assets/user.css + +pages: + # It's not necessary to create a new file for each page and include it, you can simply + # put its contents here, though multiple pages are easier to manage when separated + - $include: home.yml diff --git a/glance/config/home.yml b/glance/config/home.yml new file mode 100644 index 0000000..1b942ee --- /dev/null +++ b/glance/config/home.yml @@ -0,0 +1,126 @@ +- name: Dashboard + #hide-desktop-navigation: true + #center-vertically: true + columns: + - size: small + widgets: + - type: to-do + - type: clock + hour-format: 24h + timezones: + - timezone: America/New_York + label: New York + - timezone: Asia/Tokyo + label: Tokyo + - type: calendar-legacy + start-sunday: false + - type: server-stats + servers: + - type: local + name: Server + + - size: full + widgets: + - type: search + autofocus: true + search-engine: https://searxng.tail567636.ts.net/search?q={QUERY} + new-tab: true + bangs: + - title: YouTube + shortcut: "!yt" + url: https://www.youtube.com/results?search_query={QUERY} + - title: Github + shortcut: "!gh" + url: https://github.com/search?q={QUERY}&type=repositories + - type: monitor + cache: 1m + title: Services + sites: + - title: Proxmox + url: https://192.168.8.119:8006 + check-url: https://192.168.8.119:8006 + allow-insecure: true + icon: di:proxmox + - title: HASS + url: http://192.168.8.126:8123/dashboard-test/mushroom + icon: di:home-assistant + - title: Forgejo + url: https://git.bapasqui.com + icon: di:forgejo + - title: Searxng + url: https://searxng.tail567636.ts.net + icon: di:searxng + - title: Dumbpad + url: https://notes.bapasqui.com + icon: di:notion + - title: Nextcloud + url: + icon: di:nextcloud + - title: Plex + url: + icon: di:plex + allow-insecure: true + - title: Jellyfin + url: + icon: di:jellyfin + - title: Tautulli + url: + icon: di:tautulli + - title: Transmission + url: + icon: di:transmission + - title: Routeur Chambre + url: http://192.168.8.1/#/internet + icon: di:glinet + - title: Livebox + url: http://192.168.1.1 + icon: di:orange + - type: monitor + cache: 1m + title: ServArr + sites: + - title: Radarr + url: + icon: di:radarr + - title: Sonarr + url: + icon: di:sonarr + - title: Prowlarr + url: + icon: di:prowlarr + - title: Readarr + url: + icon: di:readarr + - title: Ombi + url: + icon: di:ombi + - type: bookmarks + groups: + - title: Coding + links: + - title: Intra42 + url: https://profile-v3.intra.42.fr/ + - title: Github + url: https://github.com/ + - title: Claude + url: https://claude.ai/new + - title: Seedbox + url: https://cp.ultra.cc/#/ + - title: Entertainment + color: 10 70 50 + links: + - title: Plex + url: https://app.plex.tv/desktop/#!/ + - title: YouTube + url: https://www.youtube.com/ + - title: Streamio + url: https://web.stremio.com/ + - title: AnimeSama + url: https://animes-sama.fr/ + - title: Social + color: 200 50 50 + links: + - title: Reddit + url: https://www.reddit.com/ + - title: Twitter + url: https://twitter.com/ diff --git a/searxng/compose.yml b/searxng/compose.yml new file mode 100644 index 0000000..d1828c3 --- /dev/null +++ b/searxng/compose.yml @@ -0,0 +1,23 @@ +services: + core: + container_name: searxng-core + image: docker.io/searxng/searxng:${SEARXNG_VERSION:-latest} + restart: always + ports: + - ${SEARXNG_HOST:+${SEARXNG_HOST}:}${SEARXNG_PORT:-8080}:${SEARXNG_PORT:-8080} + env_file: ./.env + volumes: + - ./core-config/:/etc/searxng/:Z + - core-data:/var/cache/searxng/ + + valkey: + container_name: searxng-valkey + image: docker.io/valkey/valkey:9-alpine + command: valkey-server --save 30 1 --loglevel warning + restart: always + volumes: + - valkey-data:/data/ + +volumes: + core-data: + valkey-data: diff --git a/searxng/core-config/settings.yml b/searxng/core-config/settings.yml new file mode 100644 index 0000000..e69de29