feat: initial infra repo

- docker-services: 14 generic compose templates (portainer, npm, vaultwarden, gitea, jotty, nextcloud-aio, rustdesk, audiobookshelf, calibre-web, plex, erugo, jswiki, speedtest, watchtower)
- install-scripts: bash scripts for Ubuntu server bootstrap, docker, portainer, npm, backup, restore
- ansible: 4 playbooks (bootstrap, deploy-services, update-services, security-hardening) + roles skeleton
- hermes-install: Hermes CLI setup on macOS
- macos-setup: Brewfile + osx-defaults + fish-config
- home-nas-tools: metadata index for NAS projects (no binaries)
- docs: architecture, security, contributing
- README, LICENSE (MIT), .gitignore
This commit is contained in:
2026-08-01 16:25:58 +02:00
commit 444191d16d
73 changed files with 4032 additions and 0 deletions
@@ -0,0 +1,19 @@
# Nextcloud AIO proměnné prostředí
TZ=Europe/Prague
PUID=1000
PGID=1000
# Web port (default 11000)
APACHE_PORT=11000
# Data na hostu (NE containeru)
NEXTCLOUD_DATADIR=/mnt/data
# Extra balíky (ImageMagick pro OCR, atd.)
NEXTCLOUD_ADDITIONAL_APKS=imagemagick
# Upload limit
NEXTCLOUD_UPLOAD_LIMIT=10G
# Důvěryhodné certifikáty (firemní CA, Cloudflare Origin)
# NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates
+64
View File
@@ -0,0 +1,64 @@
# Nextcloud AIO vše v jednom
> All-in-One Nextcloud: soubory, kalendář, kontakty, fotky, videohovory.
## 📋 Přehled
- **Image:** `nextcloud/all-in-one:latest`
- **Porty:** `11000` (admin), další interně
- **User:** `1000:1000`
- **Network:** `bridge` + `nextcloud-aio` (interní)
## 🚀 Instalace
```bash
cp .env.example .env
nano .env # nastavit APACHE_PORT, NEXTCLOUD_DATADIR, NEXTCLOUD_ADDITIONAL_APKS
docker compose up -d
```
Pak otevři `http://<server>:11000/` a dokonči instalaci.
## 🌐 Přístup
- **Admin:** `http://<server>:11000`
- **Nextcloud:** `http://<server>:11000` (nebo za reverse proxy)
- **Doporučení:** terminuj HTTPS přes NPM
## 🔧 Pokročilé nastavení
- **Cloudflare Tunnel** pro vzdálený přístup bez veřejné IP
- **Talk (videohovory)** v AIO default
- **Imaginary (AI)** rozpoznávání obrázků
- **Fulltextsearch** indexování souborů
- **Whiteboard** collaborative kreslení
- **Borg backup** integrované zálohování
## 🔐 Bezpečnost
- **HTTPS terminuj v NPM** (Let's Encrypt)
- **2FA** povinně pro admin
- **Brute force protection** default zapnutý
- **Trusted domains** nastav `NEXTCLOUD_TRUSTED_DOMAINS`
- **Backup** AIO Borg nebo externí rsync
## 🔄 Aktualizace
```bash
docker compose pull
docker compose up -d
# AIO auto-updates Nextcloud a všechny sub-containery
```
## 📁 Volumes
| Mount | Účel |
|---|---|
| `./nextcloud_aio_mastercontainer:/mnt/docker-aio-config` | AIO master data |
| `./data:/mnt/data` | Nextcloud data (files, DB) |
## 📚 Dokumentace
- [Nextcloud AIO](https://github.com/nextcloud/all-in-one)
- [Nextcloud Admin Manual](https://docs.nextcloud.com/server/latest/admin_manual/)
@@ -0,0 +1,40 @@
# Nextcloud All-in-One
services:
nextcloud-aio-mastercontainer:
image: nextcloud/all-in-one:latest
container_name: nextcloud-aio-mastercontainer
restart: unless-stopped
init: true
ports:
- "11000:8080"
volumes:
- ./nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- ./data:/mnt/data
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Prague
- APACHE_PORT=11000
- NEXTCLOUD_DATADIR=/mnt/data
- NEXTCLOUD_ADDITIONAL_APKS=imagemagick
- NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates
- NEXTCLOUD_UPLOAD_LIMIT=10G
networks:
- nextcloud_net
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 60s
timeout: 10s
retries: 5
start_period: 120s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
networks:
nextcloud_net:
name: nextcloud_default
driver: bridge