diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fdad38a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +jmuiscbot/config.txt \ No newline at end of file diff --git a/bookstack/docker-compose.yml b/bookstack/docker-compose.yml new file mode 100644 index 0000000..829c152 --- /dev/null +++ b/bookstack/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3" + +services: + server: + image: solidnerd/bookstack:latest + container_name: bookstack + environment: + - DB_HOST=192.168.2.90:3306 + - DB_DATABASE=bookstack + - DB_USERNAME=bookstack + - DB_PASSWORD=9mbfcqxrxBc33UB8FwxC + - APP_URL='https://wiki.krumel.moe' + - FILE_UPLOAD_SIZE_LIMIT=50M + - APP_KEY='efb0b9f997b0f937a2ea99906fb05624' +# - APP_DEBUG=true + restart: always + networks: + - bookstack +# volumes: + ports: + - "8180:8080" + +networks: + bookstack: + ipam: + config: + - subnet: 172.20.190.0/24 diff --git a/collabora/docker-compose.yml b/collabora/docker-compose.yml new file mode 100644 index 0000000..6f133a4 --- /dev/null +++ b/collabora/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3" + +services: + server: + image: collabora/code + container_name: collabora + environment: + - domain=cloud.krumel.moe + - extra_params="--o:ssl.enable=true --o:ssl.termination=true" + env_file: + - /srv/docker/docker-secrets/collabora.env + restart: always + networks: + - collabora + ports: + - "9980:9980" + +networks: + collabora: + ipam: + config: + - subnet: 172.20.120.0/24 + diff --git a/foundryvtt/docker-compose.yml b/foundryvtt/docker-compose.yml new file mode 100644 index 0000000..731796f --- /dev/null +++ b/foundryvtt/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.7" + +services: + foundryvtt: + image: felddy/foundryvtt:release + hostname: foundry.krumel.moe + init: true + volumes: + - /srv/docker/foundry:/data + ports: + - "30000:30000/tcp" + restart: "unless-stopped" + environment: + - FOUNDRY_HOSTNAME=foundry.krumel.moe + - FOUNDRY_LOCAL_HOSTNAME=petit-docker.grafschaft.lan:30000 + - FOUNDRY_PROXY_PORT=443 + - FOUNDRY_PROXY_SSL=true + - CONTAINER_PRESERVE_CONFIG=true + networks: + - foundry + secrets: + - source: foundry_creds + target: config.json + +networks: + foundry: + ipam: + config: + - subnet: 172.20.60.0/24 + +secrets: + foundry_creds: + file: /srv/docker/docker-secrets/foundry.json diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..5aac405 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3" + +services: + server: + image: gitea/gitea:latest + container_name: gitea + environment: + - USER_UID=2000 + - USER_GID=2000 + restart: always + networks: + - gitea + volumes: + - /srv/docker/gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro +# - /home/git/.ssh/:/data/git/.ssh + ports: + - "3300:3000" + - "3322:22" + +networks: + gitea: + ipam: + config: + - subnet: 172.20.30.0/24 diff --git a/grafana/auto_restart.log b/grafana/auto_restart.log new file mode 100644 index 0000000..6229031 --- /dev/null +++ b/grafana/auto_restart.log @@ -0,0 +1,9 @@ +Some services (influxdb) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm. +Removing grafana ... +Removing influxdb ... + Removing grafana ... done  Removing influxdb ... done Removing network grafana_grafana +Some services (influxdb) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm. +Creating network "grafana_grafana" with the default driver +Creating grafana ... +Creating influxdb ... + Creating grafana ... done  Creating influxdb ... done  \ No newline at end of file diff --git a/grafana/auto_restart.sh b/grafana/auto_restart.sh new file mode 100755 index 0000000..86bd572 --- /dev/null +++ b/grafana/auto_restart.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +cd /home/admin/compose/grafana + +response=$(curl --write-out '%{http_code}' --silent --output /dev/null https://grafana.krumel.moe) + +if [[ $response -gt 500 ]] ; then + /usr/local/bin/docker-compose -f grafana.compose down > auto_restart.log 2>&1 + /usr/local/bin/docker-compose -f grafana.compose up -d >> auto_restart.log 2>&1 + sleep 1m + response=$(curl --write-out '%{http_code}' --silent --output /dev/null https://grafana.krumel.moe) + if [[ $response -gt 500 ]] ; then + echo "Auto Restart of Grafana/InfluxDB did not succeed, Status $response" + fi +fi + diff --git a/grafana/docker-compose.yaml b/grafana/docker-compose.yaml new file mode 100644 index 0000000..2a42780 --- /dev/null +++ b/grafana/docker-compose.yaml @@ -0,0 +1,38 @@ +version: '3.3' +services: + grafana: + ports: + - '3000:3000' + container_name: grafana + volumes: + - '/srv/docker/grafana/data:/var/lib/grafana' + - '/srv/docker/grafana/grafana.ini:/etc/grafana/grafana.ini' + image: grafana/grafana:latest +# environment: +# - GF_INSTALL_PLUGINS=natel-plotly-panel,briangann-gauge-panel,petrslavotinek-carpetplot-panel,neocat-cal-heatmap-panel + networks: + - grafana + restart: unless-stopped + + influxdb: + container_name: influxdb + ports: + - '8086:8086' + volumes: + - '/srv/docker/influxdb/data:/var/lib/influxdb2' + - '/srv/docker/influxdb/config.yml:/etc/influxdb2/config.yml' + image: 'influxdb' + networks: + - grafana + restart: unless-stopped + deploy: + resources: + limits: + memory: 4G + +networks: + grafana: + ipam: + config: + - subnet: 172.20.0.0/24 + diff --git a/homeassistant/docker-compose.yaml b/homeassistant/docker-compose.yaml new file mode 100644 index 0000000..d18c36a --- /dev/null +++ b/homeassistant/docker-compose.yaml @@ -0,0 +1,22 @@ +version: '3' +services: + mosquitto: + container_name: mosquitto-broker + image: eclipse-mosquitto + volumes: + - /srv/docker/homeassistant/mosquitto:/mosquitto/ + ports: + - 1883:1883 + - 9001:9001 + + homeassistant: + container_name: homeassistant + image: "ghcr.io/home-assistant/home-assistant:stable" + volumes: + - /srv/docker/homeassistant/config:/config + - /etc/localtime:/etc/localtime:ro + restart: unless-stopped + # sadly this is required for mDNS broadcasts + network_mode: host + depends_on: + - mosquitto diff --git a/jmusicbot/config.txt b/jmusicbot/config.txt new file mode 100644 index 0000000..aab7afc --- /dev/null +++ b/jmusicbot/config.txt @@ -0,0 +1,183 @@ +///////////////////////////////////////////////////////// +// Config for the JMusicBot // +///////////////////////////////////////////////////////// +// Any line starting with // is ignored // +// You MUST set the token and owner // +// All other items have defaults if you don't set them // +// Open in Notepad++ for best results // +///////////////////////////////////////////////////////// + + +// This sets the token for the bot to log in with +// This MUST be a bot token (user tokens will not work) +// If you don't know how to get a bot token, please see the guide here: +// https://github.com/jagrosh/MusicBot/wiki/Getting-a-Bot-Token + +token = NDA0MDQ4NDI1MjQwNDk0MDgw.G832xp.kgFoTKUfm2-emuh5LrKa0wXaYRM897opZoXbXk + + +// This sets the owner of the bot +// This needs to be the owner's ID (a 17-18 digit number) +// https://github.com/jagrosh/MusicBot/wiki/Finding-Your-User-ID + +owner = 140834277750341632 + + +// This sets the prefix for the bot +// The prefix is used to control the commands +// If you use !!, the play command will be !!play +// If you do not set this, the prefix will be a mention of the bot (@Botname play) + +prefix = "@mention" + + +// If you set this, it modifies the default game of the bot +// Set this to NONE to have no game +// Set this to DEFAULT to use the default game +// You can make the game "Playing X", "Listening to X", or "Watching X" +// where X is the title. If you don't include an action, it will use the +// default of "Playing" + +game = "DEFAULT" + + +// If you set this, it will modify the default status of bot +// Valid values: ONLINE IDLE DND INVISIBLE + +status = ONLINE + + +// If you set this to true, the bot will list the title of the song it is currently playing in its +// "Playing" status. Note that this will ONLY work if the bot is playing music on ONE guild; +// if the bot is playing on multiple guilds, this will not work. + +songinstatus=true + + +// If you set this, the bot will also use this prefix in addition to +// the one provided above + +altprefix = "NONE" + + +// If you set these, it will change the various emojis + +success = "🎶" +warning = "💡" +error = "🚫" +loading = "⌚" +searching = "🔎" + + +// If you set this, you change the word used to view the help. +// For example, if you set the prefix to !! and the help to cmds, you would type +// !!cmds to see the help text + +help = help + + +// If you set this, the "nowplaying" command will show youtube thumbnails +// Note: If you set this to true, the nowplaying boxes will NOT refresh +// This is because refreshing the boxes causes the image to be reloaded +// every time it refreshes. + +npimages = false + + +// If you set this, the bot will not leave a voice channel after it finishes a queue. +// Keep in mind that being connected to a voice channel uses additional bandwith, +// so this option is not recommended if bandwidth is a concern. + +stayinchannel = true + + +// This sets the maximum amount of seconds any track loaded can be. If not set or set +// to any number less than or equal to zero, there is no maximum time length. This time +// restriction applies to songs loaded from any source. + +maxtime = 0 + +// This sets the amount of seconds the bot will stay alone on a voice channel until it +// automatically leaves the voice channel and clears the queue. If not set or set +// to any number less than or equal to zero, the bot won't leave when alone. + +alonetimeuntilstop = 0 + +// This sets an alternative folder to be used as the Playlists folder +// This can be a relative or absolute path + +playlistsfolder = "Playlists" + + +// By default, the bot will DM the owner if the bot is running and a new version of the bot +// becomes available. Set this to false to disable this feature. + +updatealerts=true + + +// Changing this changes the lyrics provider +// Currently available providers: "A-Z Lyrics", "Genius", "MusicMatch", "LyricsFreak" +// At the time of writing, I would recommend sticking with A-Z Lyrics or MusicMatch, +// as Genius tends to have a lot of non-song results and you might get something +// completely unrelated to what you want. +// If you are interested in contributing a provider, please see +// https://github.com/jagrosh/JLyrics + +lyrics.default = "A-Z Lyrics" + + +// These settings allow you to configure custom aliases for all commands. +// Multiple aliases may be given, separated by commas. +// +// Example 1: Giving command "play" the alias "p": +// play = [ p ] +// +// Example 2: Giving command "search" the aliases "yts" and "find": +// search = [ yts, find ] + +aliases { + // General commands + settings = [ status ] + + // Music commands + lyrics = [] + nowplaying = [ np, current ] + play = [] + playlists = [ pls ] + queue = [ list ] + remove = [ delete ] + scsearch = [] + search = [ ytsearch ] + shuffle = [] + skip = [ voteskip ] + + // Admin commands + prefix = [ setprefix ] + setdj = [] + settc = [] + setvc = [] + + // DJ Commands + forceremove = [ forcedelete, modremove, moddelete ] + forceskip = [ modskip ] + movetrack = [ move ] + pause = [] + playnext = [] + repeat = [] + skipto = [ jumpto ] + stop = [] + volume = [ vol ] +} + +// If you set this to true, it will enable the eval command for the bot owner. This command +// allows the bot owner to run arbitrary code from the bot's account. +// +// WARNING: +// This command can be extremely dangerous. If you don't know what you're doing, you could +// cause horrific problems on your Discord server or on whatever computer this bot is running +// on. Never run this command unless you are completely positive what you are running. +// +// DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT THIS DOES OR HOW TO USE IT +// IF SOMEONE ASKS YOU TO ENABLE THIS, THERE IS AN 11/10 CHANCE THEY ARE TRYING TO SCAM YOU + +eval=false diff --git a/jmusicbot/docker-compose.yml b/jmusicbot/docker-compose.yml new file mode 100644 index 0000000..0d56f53 --- /dev/null +++ b/jmusicbot/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' +services: + + jmusicbot-app: + build: + context: . + dockerfile: dockerfile + args: + RELEASE_URL: "https://github.com/jagrosh/MusicBot/releases/download/0.3.9/JMusicBot-0.3.9.jar" + container_name: jmusicbot + #ports: + volumes: + - /srv/docker/jmusicbot/config.txt:/jmusicbot/config.txt + #environment: + restart: unless-stopped diff --git a/jmusicbot/dockerfile b/jmusicbot/dockerfile new file mode 100644 index 0000000..9ffd7cf --- /dev/null +++ b/jmusicbot/dockerfile @@ -0,0 +1,8 @@ +FROM openjdk:23 +ARG RELEASE_URL + +WORKDIR /jmusicbot + +RUN curl -L "$RELEASE_URL" -o JMusicBot.jar + +CMD ["java", "-jar", "JMusicBot.jar"] \ No newline at end of file diff --git a/listnets.sh b/listnets.sh new file mode 100755 index 0000000..a1b9c51 --- /dev/null +++ b/listnets.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +cat */* | grep -o subnet:.* | sort diff --git a/osticket/docker-compose.yml b/osticket/docker-compose.yml new file mode 100644 index 0000000..d0eb97c --- /dev/null +++ b/osticket/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3.7' +services: + + osticket-app: + image: tiredofit/osticket + container_name: osticket-app + ports: + - '8280:80' + volumes: + - /srv/docker/osticket/data/:/www/osticket + - /srv/docker/osticket/logs/:/www/logs + environment: + - TIMEZONE=Europe/Berlin + - CONTAINER_NAME=osticket-app + + - CRON_INTERVAL=10 + + - DB_HOST=petit-db.grafschaft.lan + - DB_NAME=osticket + - DB_USER=osticket + - DB_PASS=hM0HDKgEjXjY0PmJ + + - SMTP_HOST=petit-mail.grafschaft.lan + - SMTP_PORT=25 + - SMTP_FROM=ticket@krumel.moe + - SMTP_TLS=0 + - SMTP_USER= + - SMTP_PASS= + + - INSTALL_SECRET=p5sj8KPmUFtwyHxo8cw3GHh1vSIMMsQb + - INSTALL_EMAIL=ticket@krumel.moe + - INSTALL_NAME=OSTicket + + - ADMIN_FIRSTNAME=Admin + - ADMIN_LASTNAME=User + - ADMIN_EMAIL=admin@krumel.moe + - ADMIN_USER=ostadmin + - ADMIN_PASS=IpHB6mpsBHB5Iwgj + networks: + - osticket + restart: always + +networks: + osticket: + ipam: + config: + - subnet: 172.20.1.0/24 diff --git a/powerdns-admin/docker-compose.yml b/powerdns-admin/docker-compose.yml new file mode 100644 index 0000000..0b1fcf4 --- /dev/null +++ b/powerdns-admin/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3" + +services: + app: + image: powerdnsadmin/pda-legacy:latest + container_name: powerdns_admin_app + ports: + - "9191:80" + logging: + driver: json-file + options: + max-size: 50m + environment: + - GUNICORN_TIMEOUT=60 + - GUNICORN_WORKERS=2 + - GUNICORN_LOGLEVEL=WARNING + - SQLALCHEMY_DATABASE_URI=mysql://pdns:Ei8iVPIBlL95d0VK@petit-db.grafschaft.lan/pdns_admin + volumes: + - /srv/docker/pdnsadmin/data:/data + restart: unless-stopped diff --git a/unifi-controller/docker-compose.yml b/unifi-controller/docker-compose.yml new file mode 100644 index 0000000..3f14e7b --- /dev/null +++ b/unifi-controller/docker-compose.yml @@ -0,0 +1,30 @@ +version: "2.1" +services: + unifi-controller: + image: ghcr.io/linuxserver/unifi-controller + container_name: unifi-controller + environment: + - PUID=1000 + - PGID=1000 + - MEM_LIMIT=640 + volumes: + - /srv/docker/unifi-controller/config:/config + ports: + - 3478:3478/udp + - 10001:10001/udp + - 8080:8080 + - 8443:8443 +# - 1900:1900/udp #optional +# - 8843:8843 #optional +# - 8880:8880 #optional +# - 6789:6789 #optional +# - 5514:5514/udp #optional + restart: unless-stopped + networks: + - unifi-controller + +networks: + unifi-controller: + ipam: + config: + - subnet: 172.20.20.0/24