93 lines
1.9 KiB
Markdown
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`
|