Compare commits
11 Commits
8e7620c2cd
...
2f8a30d715
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f8a30d715 | ||
|
|
690ea8e042 | ||
|
|
1288dacb00 | ||
|
|
c4f20395b3 | ||
|
|
5e4b41c3c2 | ||
|
|
66ff3a82b3 | ||
|
|
56bf5f741c | ||
|
|
b295a6e4cc | ||
|
|
fe7e815482 | ||
|
|
9d1f5e8f1c | ||
|
|
4ada5687d3 |
72
Checkmate/docker-compose.yaml
Normal file
72
Checkmate/docker-compose.yaml
Normal file
@ -0,0 +1,72 @@
|
||||
services:
|
||||
client:
|
||||
image: bluewaveuptime/uptime_client:latest
|
||||
restart: always
|
||||
environment:
|
||||
UPTIME_APP_API_BASE_URL: "https://checkmate.jimsgarage.co.uk/api/v1"
|
||||
#ports:
|
||||
# - "80:80"
|
||||
# - "443:443"
|
||||
depends_on:
|
||||
- server
|
||||
networks:
|
||||
- proxy
|
||||
- checkmate
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.checkmate.entrypoints=http"
|
||||
- "traefik.http.routers.checkmate.rule=Host(`checkmate.jimsgarage.co.uk`)"
|
||||
- "traefik.http.middlewares.checkmate-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.checkmate.middlewares=checkmate-https-redirect"
|
||||
- "traefik.http.routers.checkmate-secure.entrypoints=https"
|
||||
- "traefik.http.routers.checkmate-secure.rule=Host(`checkmate.jimsgarage.co.uk`)"
|
||||
- "traefik.http.routers.checkmate-secure.tls=true"
|
||||
- "traefik.http.routers.checkmate-secure.service=checkmate"
|
||||
- "traefik.http.services.checkmate.loadbalancer.server.port=80"
|
||||
- "traefik.docker.network=proxy"
|
||||
server:
|
||||
image: bluewaveuptime/uptime_server:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "5000:5000"
|
||||
depends_on:
|
||||
- redis
|
||||
- mongodb
|
||||
environment:
|
||||
- DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db
|
||||
- REDIS_HOST=redis
|
||||
- PAGESPEED_API_KEY=YOUR_API_KEY
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- checkmate
|
||||
redis:
|
||||
image: bluewaveuptime/uptime_redis:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- ./redis/data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 5s
|
||||
networks:
|
||||
- checkmate
|
||||
mongodb:
|
||||
image: bluewaveuptime/uptime_database_mongo:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- ./mongo/data:/data/db
|
||||
command: ["mongod", "--quiet"]
|
||||
ports:
|
||||
- "27017:27017"
|
||||
networks:
|
||||
- checkmate
|
||||
|
||||
networks:
|
||||
checkmate:
|
||||
proxy:
|
||||
external: true
|
||||
14
Cloudflare-HTTPS/cloudflared/docker-compose.yaml
Normal file
14
Cloudflare-HTTPS/cloudflared/docker-compose.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
services:
|
||||
tunnel:
|
||||
container_name: cloudflared-tunnel
|
||||
image: cloudflare/cloudflared
|
||||
restart: unless-stopped
|
||||
command: tunnel run
|
||||
networks:
|
||||
- proxy
|
||||
environment:
|
||||
- TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
26
Cloudflare-HTTPS/nginx/docker-compose.yaml
Normal file
26
Cloudflare-HTTPS/nginx/docker-compose.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
services:
|
||||
nginx:
|
||||
image: lscr.io/linuxserver/nginx:latest
|
||||
container_name: nginx
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Etc/UTC
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.nginx.entrypoints=http"
|
||||
- "traefik.http.routers.nginx.rule=Host(`nginx.jimsgarage-demos.co.uk`)"
|
||||
- "traefik.http.middlewares.nginx-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.nginx.middlewares=nginx-https-redirect"
|
||||
- "traefik.http.routers.nginx-secure.entrypoints=https"
|
||||
- "traefik.http.routers.nginx-secure.rule=Host(`nginx.jimsgarage-demos.co.uk`)"
|
||||
- "traefik.http.routers.nginx-secure.tls=true"
|
||||
- "traefik.http.routers.nginx-secure.tls.certresolver=cloudflare"
|
||||
- "traefik.http.routers.nginx-secure.service=nginx"
|
||||
- "traefik.http.services.nginx.loadbalancer.server.port=80"
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
0
Guacamole/.env
Normal file
0
Guacamole/.env
Normal file
100
Guacamole/docker-compose.yaml
Normal file
100
Guacamole/docker-compose.yaml
Normal file
@ -0,0 +1,100 @@
|
||||
####################################################################################
|
||||
# docker-compose file for Apache Guacamole
|
||||
# created by PCFreak 2017-06-28
|
||||
#
|
||||
# https://github.com/boschkundendienst/guacamole-docker-compose
|
||||
#
|
||||
# Apache Guacamole is a clientless remote desktop gateway. It supports standard
|
||||
# protocols like VNC, RDP, and SSH. We call it clientless because no plugins or
|
||||
# client software are required. Thanks to HTML5, once Guacamole is installed on
|
||||
# a server, all you need to access your desktops is a web browser.
|
||||
####################################################################################
|
||||
#
|
||||
#
|
||||
# The initial login to the guacamole webinterface is:
|
||||
#
|
||||
# Username: guacadmin
|
||||
# Password: guacadmin
|
||||
#
|
||||
#####################################################################################
|
||||
|
||||
# services
|
||||
services:
|
||||
# guacd
|
||||
guacd:
|
||||
container_name: guacd
|
||||
image: guacamole/guacd:latest
|
||||
networks:
|
||||
- guacnetwork
|
||||
restart: always
|
||||
volumes:
|
||||
- ./drive:/drive:rw
|
||||
- ./record:/record:rw
|
||||
# mysql
|
||||
mysql:
|
||||
image: mysql:latest
|
||||
container_name: mysql
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root_pass
|
||||
MYSQL_DATABASE: guacamole_db
|
||||
MYSQL_USER: guac_user
|
||||
MYSQL_PASSWORD: guac_pass
|
||||
volumes:
|
||||
- ./init:/docker-entrypoint-initdb.d:z
|
||||
- ./data:/var/lib/mysql
|
||||
networks:
|
||||
- guacnetwork
|
||||
|
||||
# guacamole
|
||||
guacamole:
|
||||
container_name: guacamole
|
||||
image: guacamole/guacamole:latest
|
||||
env_file:
|
||||
- .env # store secrets e.g., password
|
||||
group_add:
|
||||
- "1000"
|
||||
depends_on:
|
||||
- guacd
|
||||
- mysql
|
||||
environment:
|
||||
- GUACD_HOSTNAME=guacd
|
||||
- MYSQL_HOSTNAME=mysql
|
||||
- MYSQL_DATABASE=guacamole_db
|
||||
- MYSQL_USER=guac_user
|
||||
- MYSQL_PASSWORD=guac_pass
|
||||
- MYSQL_ROOT_PASSWORD=rootpass
|
||||
- RECORDING_SEARCH_PATH=/record
|
||||
- WEBAPP_CONTEXT=ROOT # removes the need to use /guacamole in the URL
|
||||
networks:
|
||||
- proxy
|
||||
- guacnetwork
|
||||
volumes:
|
||||
- ./record:/record:rw
|
||||
ports:
|
||||
## enable next line if not using nginx
|
||||
- 8095:8080/tcp # Guacamole is on :8080/guacamole, not /.
|
||||
## enable next line when using nginx
|
||||
# - 8080/tcp
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.guacamole.entrypoints=http"
|
||||
- "traefik.http.routers.guacamole.rule=Host(`guacamole.jimsgarage.co.uk`)"
|
||||
- "traefik.http.middlewares.guacamole-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.guacamole.middlewares=guacamole-https-redirect"
|
||||
- "traefik.http.routers.guacamole-secure.entrypoints=https"
|
||||
- "traefik.http.routers.guacamole-secure.rule=Host(`guacamole.jimsgarage.co.uk`)"
|
||||
- "traefik.http.routers.guacamole-secure.tls=true"
|
||||
- "traefik.http.routers.guacamole-secure.service=guacamole"
|
||||
- "traefik.http.services.guacamole.loadbalancer.server.port=8080"
|
||||
- "traefik.docker.network=proxy"
|
||||
restart: always
|
||||
|
||||
|
||||
# networks
|
||||
# create a network 'guacnetwork' in mode 'bridged'
|
||||
networks:
|
||||
guacnetwork:
|
||||
driver: bridge
|
||||
proxy:
|
||||
external: true
|
||||
17
Guacamole/prepare.sh
Normal file
17
Guacamole/prepare.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# check if docker is running
|
||||
if ! (docker ps >/dev/null 2>&1)
|
||||
then
|
||||
echo "docker daemon not running, will exit here!"
|
||||
exit
|
||||
fi
|
||||
echo "Preparing folder init and creating ./init/initdb.sql"
|
||||
mkdir ./init >/dev/null 2>&1
|
||||
chmod -R +x ./init
|
||||
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > ./init/initdb.sql
|
||||
echo "done"
|
||||
echo "Preparing folder record and set permissions"
|
||||
mkdir ./record >/dev/null 2>&1
|
||||
chmod -R 777 ./record
|
||||
echo "done"
|
||||
5
Links/affiliate.md
Normal file
5
Links/affiliate.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Unifi
|
||||
|
||||
Store Link: https://store.ui.com/?a_aid=JimsGarage
|
||||
|
||||
#
|
||||
26
Omni-Tools/docker-compose.yaml
Normal file
26
Omni-Tools/docker-compose.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
services:
|
||||
omni-tools:
|
||||
image: iib0011/omni-tools:latest
|
||||
container_name: omni-tools
|
||||
restart: unless-stopped
|
||||
#ports:
|
||||
# - "8080:80"
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.omni-tools.entrypoints=http"
|
||||
- "traefik.http.routers.omni-tools.rule=Host(`omni-tools.jimsgarage.co.uk`)"
|
||||
- "traefik.http.middlewares.omni-tools-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.omni-tools.middlewares=omni-tools-https-redirect"
|
||||
- "traefik.http.routers.omni-tools-secure.entrypoints=https"
|
||||
- "traefik.http.routers.omni-tools-secure.rule=Host(`omni-tools.jimsgarage.co.uk`)"
|
||||
- "traefik.http.routers.omni-tools-secure.tls=true"
|
||||
- "traefik.http.routers.omni-tools-secure.tls.certresolver=cloudflare"
|
||||
- "traefik.http.routers.omni-tools-secure.service=omni-tools"
|
||||
- "traefik.http.services.omni-tools.loadbalancer.server.port=80"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
6
Pocket-ID/.env
Normal file
6
Pocket-ID/.env
Normal file
@ -0,0 +1,6 @@
|
||||
# See the documentation for more information: https://pocket-id.org/docs/configuration/environment-variables
|
||||
PUBLIC_APP_URL=https://pocket-id.jimsgarage.co.uk
|
||||
TRUST_PROXY=true
|
||||
MAXMIND_LICENSE_KEY=
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
34
Pocket-ID/docker-compose.yaml
Normal file
34
Pocket-ID/docker-compose.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
services:
|
||||
pocket-id:
|
||||
image: ghcr.io/pocket-id/pocket-id
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
ports:
|
||||
- 3000:80
|
||||
volumes:
|
||||
- "./data:/app/backend/data"
|
||||
# Optional healthcheck
|
||||
healthcheck:
|
||||
test: "curl -f http://localhost/health"
|
||||
interval: 1m30s
|
||||
timeout: 5s
|
||||
retries: 2
|
||||
start_period: 10s
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.pocket-id.entrypoints=http"
|
||||
- "traefik.http.routers.pocket-id.rule=Host(`pocket-id.jimsgarage.co.uk`)"
|
||||
- "traefik.http.middlewares.pocket-id-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.pocket-id.middlewares=pocket-id-https-redirect"
|
||||
- "traefik.http.routers.pocket-id-secure.entrypoints=https"
|
||||
- "traefik.http.routers.pocket-id-secure.rule=Host(`pocket-id.jimsgarage.co.uk`)"
|
||||
- "traefik.http.routers.pocket-id-secure.tls=true"
|
||||
- "traefik.http.routers.pocket-id-secure.service=pocket-id"
|
||||
- "traefik.http.services.pocket-id.loadbalancer.server.port=80"
|
||||
- "traefik.docker.network=proxy"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@ -1,2 +1,2 @@
|
||||
192.168.200.118 traefik.jimsgarge.co.uk
|
||||
192.168.200.118 portainer.jimsgarge.co.uk
|
||||
192.168.200.118 traefik.jimsgarage.co.uk
|
||||
192.168.200.118 portainer.jimsgarage.co.uk
|
||||
|
||||
35
Postiz/.env
Normal file
35
Postiz/.env
Normal file
@ -0,0 +1,35 @@
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
# GENERAL
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
# Docker machine username
|
||||
HOST_USER=ubuntu
|
||||
# Where container data will be stored (note user above)
|
||||
WORKING_DIR=/home/${HOST_USER}/docker
|
||||
# Your domain, including TLD (e.g., jimgarage.co.uk - not just jimsgarage)
|
||||
DOMAIN=jimsgarage.co.uk
|
||||
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
# OPEN AI CREDENTIALS
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
# Add key to integrate with OpenAI - generate images and text etc
|
||||
OPENAI_API_KEY="XXXXXXXXXXXXXXXXXXX"
|
||||
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
# SOCIAL MEDIA CREDENTIALS
|
||||
###############################################################################################################
|
||||
###############################################################################################################
|
||||
X_API_KEY="XXXXXXXXXXXXXXXXXXXXXXXX"
|
||||
X_API_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXX"
|
||||
|
||||
# Must add avatar to bot otherwise you will receive a 404
|
||||
DISCORD_CLIENT_ID="XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
||||
DISCORD_CLIENT_SECRET="XXXXXXXXXXXXXXXXXXXX"
|
||||
DISCORD_BOT_TOKEN_ID="XXXXXXXXXXXXXXXXXXX"
|
||||
|
||||
YOUTUBE_CLIENT_ID="XXXXXXXXXXXXXXXXX"
|
||||
YOUTUBE_CLIENT_SECRET="XXXXXXXXXXXXXX"
|
||||
107
Postiz/docker-compose.yaml
Normal file
107
Postiz/docker-compose.yaml
Normal file
@ -0,0 +1,107 @@
|
||||
services:
|
||||
postiz:
|
||||
image: ghcr.io/gitroomhq/postiz-app:latest
|
||||
container_name: postiz
|
||||
restart: always
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
# You must change these. Replace `postiz.your-server.com` with your DNS name - this needs to be exactly the URL you're accessing Postiz on.
|
||||
# Be sure to add the domain to your local domain resolver e.g., Pi-Hole
|
||||
MAIN_URL: "https://postiz.${DOMAIN}"
|
||||
FRONTEND_URL: "https://postiz.${DOMAIN}"
|
||||
NEXT_PUBLIC_BACKEND_URL: "https://postiz.${DOMAIN}/api"
|
||||
JWT_SECRET: "sdfjhkj34sdkfhsdkfhsdkjfhsdf"
|
||||
|
||||
# These defaults are probably fine, but if you change your user/password, update it in the
|
||||
# postiz-postgres or postiz-redis services below.
|
||||
DATABASE_URL: "postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local"
|
||||
REDIS_URL: "redis://postiz-redis:6379"
|
||||
BACKEND_INTERNAL_URL: "http://localhost:3000"
|
||||
IS_GENERAL: "true" # Required for self-hosting.
|
||||
# The container images are pre-configured to use /uploads for file storage.
|
||||
# You probably should not change this unless you have a really good reason!
|
||||
STORAGE_PROVIDER: "local"
|
||||
UPLOAD_DIRECTORY: "/uploads"
|
||||
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
|
||||
volumes:
|
||||
- ${WORKING_DIR}/postiz/config:/config/
|
||||
- ${WORKING_DIR}/postiz/uploads:/uploads/
|
||||
# if you prefer volumes
|
||||
# - postiz-config:/config/
|
||||
# - postiz-uploads:/uploads/
|
||||
# ports:
|
||||
# - 5000:5000
|
||||
networks:
|
||||
- proxy
|
||||
- postiz-network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.postiz.entrypoints=http"
|
||||
- "traefik.http.routers.postiz.rule=Host(`postiz.${DOMAIN}`)"
|
||||
- "traefik.http.middlewares.postiz-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.postiz.middlewares=postiz-https-redirect"
|
||||
- "traefik.http.routers.postiz-secure.entrypoints=https"
|
||||
- "traefik.http.routers.postiz-secure.rule=Host(`postiz.${DOMAIN}`)"
|
||||
- "traefik.http.routers.postiz-secure.tls=true"
|
||||
- "traefik.http.routers.postiz-secure.tls.certresolver=cloudflare"
|
||||
- "traefik.http.routers.postiz-secure.service=postiz"
|
||||
- "traefik.http.services.postiz.loadbalancer.server.port=5000"
|
||||
depends_on:
|
||||
postiz-postgres:
|
||||
condition: service_healthy
|
||||
postiz-redis:
|
||||
condition: service_healthy
|
||||
|
||||
postiz-postgres:
|
||||
image: postgres:17-alpine
|
||||
container_name: postiz-postgres
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: postiz-password
|
||||
POSTGRES_USER: postiz-user
|
||||
POSTGRES_DB: postiz-db-local
|
||||
volumes:
|
||||
- ${WORKING_DIR}/postiz/postgres:/var/lib/postgresql/data
|
||||
# if you prefer volumes
|
||||
# - postgres-volume:/var/lib/postgresql/data
|
||||
networks:
|
||||
- postiz-network
|
||||
healthcheck:
|
||||
test: pg_isready -U postiz-user -d postiz-db-local
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
postiz-redis:
|
||||
image: redis:7.2
|
||||
container_name: postiz-redis
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: redis-cli ping
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
volumes:
|
||||
- ${WORKING_DIR}/postiz/redis:/data
|
||||
# if you prefer volumes
|
||||
# - postiz-redis-data:/data
|
||||
networks:
|
||||
- postiz-network
|
||||
|
||||
# if you prefer volumes
|
||||
# volumes:
|
||||
# postgres-volume:
|
||||
# external: false
|
||||
# postiz-redis-data:
|
||||
# external: false
|
||||
# postiz-config:
|
||||
# external: false
|
||||
# postiz-uploads:
|
||||
# external: false
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
postiz-network:
|
||||
external: false
|
||||
39
RustDesk/docker-compose.yaml
Normal file
39
RustDesk/docker-compose.yaml
Normal file
@ -0,0 +1,39 @@
|
||||
services:
|
||||
hbbs:
|
||||
container_name: hbbs
|
||||
image: rustdesk/rustdesk-server:latest
|
||||
command: hbbs
|
||||
volumes:
|
||||
- ./data:/root
|
||||
# network_mode: "host" # Uncomment this line if you want to use host networking
|
||||
networks:
|
||||
- rustdesk
|
||||
ports:
|
||||
# If you do not need web client support, the corresponding ports 21118, 21119 can be disabled.
|
||||
# - "21114:21114/tcp" # (TCP): used for web console, only available in Pro version.
|
||||
- "21115:21115" # used for the NAT type test
|
||||
- "21116:21116" # should be enabled both for TCP and UDP. is used for the ID registration and heartbeat service. 21116/TCP is used for TCP hole punching and connection service
|
||||
- "21116:21116/udp" # should be enabled both for TCP and UDP. is used for the ID registration and heartbeat service. 21116/TCP is used for TCP hole punching and connection service
|
||||
- "21118:21118" # used to support web clients
|
||||
depends_on:
|
||||
- hbbr
|
||||
restart: unless-stopped
|
||||
|
||||
hbbr:
|
||||
container_name: hbbr
|
||||
image: rustdesk/rustdesk-server:latest
|
||||
command: hbbr
|
||||
volumes:
|
||||
- ./data:/root
|
||||
# network_mode: "host" # Uncomment this line if you want to use host networking
|
||||
networks:
|
||||
- rustdesk
|
||||
ports:
|
||||
# If you do not need web client support, the corresponding ports 21118, 21119 can be disabled.
|
||||
- "21117:21117" # used for the relay service
|
||||
- "21119:21119" # used to support web clients
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
networks:
|
||||
rustdesk:
|
||||
9
Tinyauth/.env
Normal file
9
Tinyauth/.env
Normal file
@ -0,0 +1,9 @@
|
||||
# generate with openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32
|
||||
SECRET=5vvAGg1lfdsDO3lPtkj5CRv3RXEk44HN
|
||||
USERS=alice:$$2y$$05$$y/TnBJ.Zal5PM2Xu43NCRu0hP.STmZzb0vFiqr6LPRBc4cG0jwJr.,bob:$$2y$$05$$44DactVuy2Sqzd329hIehOp1T6JYhcnDF1r.I7TxSA8MQUwygkqV. # pw = password
|
||||
|
||||
# Important to set this when using OAuth otherwise anyone with an account can use it to log in
|
||||
OAUTH_WHITELIST=your@email.com
|
||||
|
||||
GITHUB_CLIENT_ID=XXXXXXXXXXXXXXX
|
||||
GITHUB_CLIENT_SECRET=XXXXXXXXXXXXXXXX
|
||||
37
Tinyauth/docker-compose.yaml
Normal file
37
Tinyauth/docker-compose.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
services:
|
||||
tinyauth:
|
||||
image: ghcr.io/steveiliop56/tinyauth:v3
|
||||
container_name: tinyauth
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# generate with openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32
|
||||
- SECRET=${SECRET}
|
||||
- APP_URL=https://tinyauth.jimsgarage.co.uk
|
||||
# generate with "echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g" - substitute the user with what you want, or use a file
|
||||
# - USERS=${USERS}
|
||||
- USERS_FILE=users_file # add a file with multiple users in the above format if necessary
|
||||
- LOG_LEVEL=0
|
||||
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
|
||||
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
|
||||
- OAUTH_WHITELIST=${OAUTH_WHITELIST}
|
||||
volumes:
|
||||
- ./users:/tinyauth/users_file
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.tinyauth.entrypoints=http"
|
||||
- "traefik.http.routers.tinyauth.rule=Host(`tinyauth.jimsgarage.co.uk`)"
|
||||
- "traefik.http.middlewares.tinyauth-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.tinyauth.middlewares=tinyauth-https-redirect"
|
||||
- "traefik.http.routers.tinyauth-secure.entrypoints=https"
|
||||
- "traefik.http.routers.tinyauth-secure.rule=Host(`tinyauth.jimsgarage.co.uk`)"
|
||||
- "traefik.http.routers.tinyauth-secure.tls=true"
|
||||
- "traefik.http.routers.tinyauth-secure.tls.certresolver=cloudflare"
|
||||
- "traefik.http.routers.tinyauth-secure.service=tinyauth"
|
||||
- "traefik.http.services.tinyauth.loadbalancer.server.port=3000"
|
||||
- "traefik.http.middlewares.tinyauth.forwardauth.address=http://tinyauth:3000/api/auth/traefik"
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
3
Tinyauth/users
Normal file
3
Tinyauth/users
Normal file
@ -0,0 +1,3 @@
|
||||
alice:$2y$10$k0YEfRqPD4Cgu1Bu2BR5je4s6HSqhBRqr7wW4VfYIeYn5bVaUX5lq:XAP2AEQMCO2OHGU56AT5Y5PW3UA6CKXR
|
||||
bob:$2y$10$5OABhZc49FA0mVWo.a8tmeNd/FGf/d3..hcqwJL0w3lXJozIVIwtq
|
||||
ADD GITHUB OAUTH HERE
|
||||
33
Zigbee2MQTT/docker-compose.yaml
Normal file
33
Zigbee2MQTT/docker-compose.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
services:
|
||||
zigbee2mqtt:
|
||||
container_name: zigbee2mqtt
|
||||
image: ghcr.io/koenkk/zigbee2mqtt
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/ubuntu/docker/zigbee2mqtt/data:/app/data # persistent data storage
|
||||
ports:
|
||||
# Frontend port
|
||||
- 8080:8080
|
||||
environment:
|
||||
- TZ=Europe/London
|
||||
#devices:
|
||||
# Make sure this matched your adapter location
|
||||
# not required as we'll be connecting via Network - however USB devices can be used this way
|
||||
# - /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyACM0
|
||||
|
||||
# Uncomment the following lines if you want to use Mosquitto as a broker
|
||||
# mosquitto:
|
||||
# container_name: mosquitto
|
||||
# image: eclipse-mosquitto:latest
|
||||
# restart: always
|
||||
# deploy:
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: 256M
|
||||
# ports:
|
||||
# - "1883:1883"
|
||||
# - "9001:9001"
|
||||
# volumes:
|
||||
# - /home/ubuntu/docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
|
||||
# - /home/ubuntu/docker/mosquitto/data:/mosquitto/data
|
||||
# - /home/ubuntu/docker/mosquitto/log:/mosquitto/log
|
||||
Loading…
Reference in New Issue
Block a user