14 Getting started
Paolo Iommarini edited this page 2026-07-03 19:42:19 +00:00

Getting started

The easiest way to run piBlog is to use the published docker image and start it using a docker-compose file.
In the docker-compose file you can set platform settings using ENV variables to customize your installation.

Use cases

  • A personal diary: only you can read your posts.
    "PlatformMode": "SingleUser",
    "MembersOnlyContent": true,
    
  • A personal blog: your posts are public, but no other users can access the platform.
    "PlatformMode": "SingleUser",
    "MembersOnlyContent": false,
    # You can enable anonymous comments
    "AnonymousCommentsEnabled": false,
    
  • A closed community: each user has their own personal blog, and only registered users can read posts.
    "PlatformMode": "Community",
    "MembersOnlyContent": true,
    "RegisterEnabled": false,
    
  • An open community: each user has their own personal blog, and posts are public.
    "PlatformMode": "Community",
    "MembersOnlyContent": true,
    # You can enable anonymous comments
    "AnonymousCommentsEnabled": false,
    # You can disable user registration
    "RegisterEnabled": true,
    

After you have prepared your docker-compose start piBlog with the command

docker compose up -d

and your installation should be reachable at http://localhost:8080
You can login using the username and password defined in OwnerUsername and OwnerPassword

Docker compose using SQLite database

services:
  app:
    container_name: 'piBlog'  
    restart: unless-stopped
    image: paoloiommarini/piblog
    mem_limit: "384M"
    environment:
      DatabaseType: 'SQLite'
      OwnerUsername: 'admin'
      OwnerPassword: 'password'
      DOTNET_gcServer: 0
      DOTNET_GCHeapHardLimitPercent: 60
    volumes:
      - piblog_data:/app/data
    ports:
      - "8080:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 60s
      timeout: 5s
      retries: 3
      start_period: 10s  

volumes:
  piblog_data:

Docker compose using PostgreSQL database

services:
  app:
    container_name: 'piBlog'  
    restart: unless-stopped
    image: paoloiommarini/piblog
    mem_limit: "384M"    
    environment:
      DatabaseType: 'Npgsql'
      DatabaseConnectionString: "Host=db;Port=5432;Database=piblog;Username=piblog_user;Password=piblog_pass"
      OwnerUsername: 'admin'
      OwnerPassword: 'password'
      DOTNET_gcServer: 0
      DOTNET_GCHeapHardLimitPercent: 60      
    volumes:
      - piblog_data:/app/data
    ports:
      - "8080:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 60s
      timeout: 5s
      retries: 3
      start_period: 10s      
    depends_on:
      db:
        condition: service_started      
      
  db:
    image: postgres:latest
    container_name: piblog-db
    environment:
      POSTGRES_DB: piblog
      POSTGRES_USER: piblog_user
      POSTGRES_PASSWORD: piblog_pass
    volumes:
      - pgdata:/var/lib/postgresql/data
    expose:
      - "5432"      
      
volumes:
  pgdata:      
  piblog_data: