firefish/dev/docs/db-container.md

2.3 KiB

Set up database containers and run Firefish locally

Prerequisites

  • Dependencies
  • The following ports are not in use
    • 25432
    • 26379

You can refer to local-installation.md to install the dependencies.

Configure the environment

  1. Fork the Firefish repository on GitLab
  2. Clone your Firefish repository
    git clone https://firefish.dev/your-user-name/firefish.git
    cd firefish
    
  3. Copy example config file
    cp dev/config.example.env dev/config.env
    # If you use container runtime other than Podman, you need to modify the "COMPOSE" variable
    # vim dev/config.env
    
  4. Create .config/default.yml with the following content
    # You can change the port if 3000 is already used
    url: http://localhost:3000
    port: 3000
    
    db:
      host: localhost
      port: 25432
      db: firefish_db
      user: firefish
      pass: password
    
    redis:
      host: localhost
      port: 26379
    
    maxlogLevel: 'debug'  # or 'trace'
    
  5. Start database containers
    make db.up
    

Build and start Firefish

  1. Build Firefish
    pnpm install
    pnpm run build:debug
    
  2. Execute database migrations
    pnpm run migrate
    
  3. Start Firefish
    pnpm run start
    
    You can access to the local Firefish server on http://localhost:3000 after this message shows up!
    DONE *  [core boot]     All workers started
    DONE *  [core boot]     Now listening on port 3000 on http://localhost:3000
    

Update auto-generated files in package/backend-rs

You need to install sea-orm-cli to regenerate database entities.

cargo install sea-orm-cli
make entities
make napi

Reset the environment

You can recreate a fresh local Firefish environment by recreating the database containers:

make db.init
pnpm run migrate
pnpm run start