No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-16 22:22:03 +02:00
.gitignore . 2026-09-15 22:55:09 +02:00
backup.sh . 2026-09-13 20:12:58 +02:00
compose.yml . 2026-09-16 22:22:03 +02:00
README.md . 2026-09-13 20:12:58 +02:00

Infra

This repos contains the blueprint for my personal infrastructure.

List of services:

  • paperless-ngx
  • nextcloud
  • forgejo

Useful commands

# remove all containers
docker rm -f $(docker ps -aq)

# remove all volumes
docker volume rm $(docker volume ls -q)

Setup instructions

The whle infra can be run with a single command but it needs two files: .dev and init.sql

# .env
VOLUMES_DIR=

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=

NEXTCLOUD_DB=
NEXTCLOUD_USER=
NEXTCLOUD_PASSWORD=

PAPERLESS_SECRET_KEY=
PAPERLESS_DB=
PAPERLESS_USER=
PAPERLESS_PASSWORD=

FORGEJO_DB=
FORGEJO_USER=
FORGEJO_PASSWORD=
-- init.db
-- repeat for all services with same values of .env file
CREATE USER <> WITH PASSWORD '<>';
CREATE DATABASE <> OWNER <>;
GRANT ALL PRIVILEGES ON DATABASE <> TO <>;

Backups

All the data is saves at /infra_data and all that is needed is to run tar -xzvf backup-(date).tar.gz on the backup and put the content in the folder.

There might be a problem with nextcloud permissions when mounting a backup, to fix this just run sudo chown -R 33:33 /infra_data/nextcloud/.

Todos

  • self host postgres instance with adminer
  • move paperless storage from sqlite over postgres
  • make init script for postgres
  • self host nextcloud
  • self host forgejo
  • use variables
  • put it all together through proper nomenclature
  • organize all the volumes and make backups
  • self host immich and connect it to nextcloud
  • self host eurooffice and connect it to nextcloud
  • make a restore.sh file
  • deploy it on hertzner