Files
SelfHostedDeployment/README.md
2026-01-23 00:18:34 +03:00

93 lines
1.9 KiB
Markdown

# self-hosted services stack
## dependencies
- docker + docker-compose 🐳
- domain with **A records** pointing to server IP:
```
example.com → YOUR_SERVER_IP
immich.example.com → YOUR_SERVER_IP
vaultwarden.example.com → YOUR_SERVER_IP
mc.example.com → YOUR_SERVER_IP
```
- ports **80/443** open (ufw/firewalld)
## quick start
### 1. Clone
```bash
git clone https://github.com/FoXeNe/SelfHostedDeployment
cd services
cp caddy/Caddyfile.example caddy/Caddyfile
nano caddy/Caddyfile # replace `yourdomain.ru`
```
### 2. create network
```bash
docker network create proxy_net
```
### 3. deploy services
#### caddy (proxy)
```bash
cd caddy
docker compose up -d
```
#### immich (photos)
```bash
cd immich-app
cp .env.example .env
nano .env # IMMICH_DOMAIN=immich.yourdomain.ru
docker compose up -d
```
#### vaultwarden ([download bitwaden apps](https://bitwarden.com/download/))
```bash
cd vaultwarden
docker compose up -d
```
#### homepage (dashboard)
```bash
cd homepage
docker compose up -d
```
#### minecraft (PaperMC)
first of all you must open 25565 port
##### install jdk
```bash
sudo pacman -S jdk21-openjdk # Arch linux
# or
sudo apt install openjdk-21-jdk # Debian/Ubuntu
```
##### install papermc.jar
[official website](https://papermc.io/downloads/paper)
##### run server
```bash
java -Xms4G -Xmx4G -jar paper.jar --nogui
```
##### change server.properties
I strongly recommend changing this in server.properties:
```
enforce-whitelist=true
white-list=true
```
if you plan to play on a non-licensed version (I recommend purchasing the official version):
```
online-mode=false
```
##### connection
```
yourdomain.ru:25565
```
## customization
### caddyfile
if you edit `caddy/Caddyfile` => reload thid docker container
### add new Service
1. create `newservice/docker-compose.yml`
2. add `networks: - proxy_net`
3. add block to Caddyfile
4. `docker compose up -d`