step implementing maintanance logic

This commit is contained in:
2026-06-27 15:20:23 +02:00
parent 1da5c4fefc
commit 2bb5125254
14 changed files with 549 additions and 31 deletions
+46
View File
@@ -0,0 +1,46 @@
version: '3.8'
services:
gitea-server:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
# Database connection
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=###SomePassword###
# Web / Domain settings
- GITEA__server__DOMAIN=git.nerdyssey.de
- GITEA__server__ROOT_URL=https://git.nerdyssey.de/
- GITEA__server__SSH_DOMAIN=git.nerdyssey.de
- GITEA__server__SSH_PORT=2222
# Security
- GITEA__service__DISABLE_REGISTRATION=true
- GITEA__service__REQUIRE_SIGNIN_VIEW=false
volumes:
- ./data:/data
ports:
- "2222:22" # This allows Git over SSH
depends_on:
- gitea-db
gitea-db:
image: postgres:15-alpine
container_name: gitea-db
restart: unless-stopped
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=###SomePassword###
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
default:
name: proxy_net
external: true
+18
View File
@@ -0,0 +1,18 @@
services:
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
# Power are managed via private subnet "proxy_net"
# ports:
# - "1883:1883"
# - "9001:9001"
volumes:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log
networks:
default:
name: proxy_net
external: true
+20
View File
@@ -0,0 +1,20 @@
version: '3.8'
services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # Public HTTP Port (Required for Certbot challenges)
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Dashboard
- '8883:8883' # Added for Secure MQTT (MQTTS)
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
default:
name: proxy_net
external: true
+45
View File
@@ -0,0 +1,45 @@
# MQTT Commands
## simple
```sh
mosquitto_sub -h 91.99.29.8 -t outdoor/king-arthur/sword/run
```
## safe
```sh
mosquitto_sub -L mqtts://nerdyssey.de:8883/outdoor/king-arthur/sword/run -d
mosquitto_sub -L mqtts://nerdyssey.de:8883/outdoor/king-arthur/sword/int -d
mosquitto_pub -L mqtts://nerdyssey.de:8883 -t outdoor/king-arthur/sword/run -m "SetMaintanance"
```
- `+` Single-level wildcard: `t1/+/sub2/sub3`
- `#` Multi-level wildcard: `t1/#/sub3`, `t1/#`
```sh
# Publishing topic with message
# -h: Host (optional)
# -t: Topic
# -m: Message
# -q: Quality of service
# -r: Retain (keep this after failed connection)
# -h: Print help info
mosquitto_pub -t someTopic -m 123 -q 1
mosquitto_pub -r -t someTopic -m "on"
mosquitto_pub -h 91.99.29.8 -t someTopic -m 123 -q 1
# Subscribing to
# -h: Host (optional)
# -t: Topic s
# + is wildcard
# # is wildcard for full subtree
# -T: Exclude topic
# -q: Quality of service
mosquitto_sub -t someTopic -q 1
mosquitto_sub -t someTopic/+/subTopic
mosquitto_sub -t bbc/# -T bbc/radio3
mosquitto_sub -h 91.99.29.8 -t someTopic -q 1
```
+60
View File
@@ -0,0 +1,60 @@
```sh
# install docker
sudo apt install ca-certificates curl -y
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# install and test
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker
sudo docker run hello-world
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
```
```sh
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
sudo ufw allow ssh
sudo ufw status verbose
sudo nano /etc/ssh/sshd_config
sudo systemctl restart ssh
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 1883/tcp # mqtt
sudo ufw allow 9001/tcp # mqtt ws
sudo ufw allow 8883/tcp # secure mqtt
sudo ufw allow 2222/tcp # secure mqtt
```
```sh
mkdir -p ~/mosquitto/config
mkdir -p ~/mosquitto/data
mkdir -p ~/mosquitto/log
nano ~/mosquitto/config/mosquitto.conf
nano ~/mosquitto/docker-compose.yml
docker compose up -d
```
todo add also config files
```sh
docker load <~/my-vite-app.tar.gz
docker images
```
+5
View File
@@ -0,0 +1,5 @@
# Secure Shell
```sh
ssh -o PubkeyAuthentication=no gustice@91.99.29.8
```