Open a terminal and create a folder called piblog.
Inside the piblog folder create a folder called data. This folder will contain the database, logs and uploaded files.
mkdir piblog
mkdir piblog/data
cd piblog
Create a file called docker-compose.yml with the following content in the piblog folder.
Set DefaultUsername and DefaultPassword to the desired values.
services:
app:
container_name: 'piBlog'
image: paoloiommarini/piblog
restart: unless-stopped
mem_limit: "512M"
environment:
DatabaseType: 'SQLite'
DatabaseConnectionString: 'Data Source=/app/data/piblog.db;foreign keys=true'
DefaultUsername: 'admin'
DefaultPassword: 'password'
KnownNetworks__0: '172.18.0.0/16'
DOTNET_gcServer: 0
volumes:
- ./data:/app/data:rw
ports:
- "8080:8080"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 60s
timeout: 5s
retries: 3
start_period: 10s
Test your docker compose by running the command
docker compose up
If piBlog crashes with a permission error when creating the SQLite database check the line in the log containing the UID
[INF] UID: 1654
Change the owner of the data folder
chown 1654:1654 data
Now we need to fix the KnownNetworks__0 value.
Inspect the piBlog network with the command
docker network inspect piblog_default
Look for the ip address at Status.IPAM.Subnets and update KnownNetworks__0 in the docker file.
"Status": { "IPAM": { "Subnets": { "172.18.0.0/16": { "IPsInUse": 4, "DynamicIPsAvailable": 65532 } } } }
Visit your blog at http://localhost:8080