Skip to main content

Bidon Self Hosted: Server Setup Guide

Overview

This guide is for publishers who want to set up a self-hosted instance of Bidon on their own Linux server. The deployment process uses Docker Compose for simplicity. Additionally, we are working on more comprehensive deployment options using Kubernetes and Kamal, which will be available soon.


Prerequisites

  1. Linux Server:

    • Ensure the server runs a Linux-based OS (e.g., Ubuntu 20.04+ or CentOS 7+).
  2. Docker and Docker Compose:

  3. MaxMind Account:

  4. Required Environment Variables:

    • Prepare the following values:
      • MAXMIND_ACCOUNT_ID (from your MaxMind account)
      • MAXMIND_LICENSE_KEY (from your MaxMind account)
      • APP_SECRET (a unique application secret, e.g., UUID)
      • SUPERUSER_LOGIN (superuser login)
      • SUPERUSER_PASSWORD (superuser password)
      • PG_PASSWORD (PostgreSQL password)
      • DEMAND_META_APP_SECRET (from your demand meta account)
      • DEMAND_META_PLATFORM_ID (from your demand meta account)

Deployment Steps

1. Clone the Repository

Clone the Bidon repository onto your server:

git clone [email protected]:bidon-io/bidon_backend.git
cd bidon_backend

2. Start Docker Compose

Use the docker-compose-prod.yml configuration file to start the containers:

MAXMIND_ACCOUNT_ID=123 \
MAXMIND_LICENSE_KEY=some_licence_key \
APP_SECRET=app_secret \
SUPERUSER_LOGIN=login \
SUPERUSER_PASSWORD=password \
PG_PASSWORD=pg_pass \
DEMAND_META_APP_SECRET=demand_meta_app_secret \
DEMAND_META_PLATFORM_ID=demand_meta_platform_id \
docker compose -f docker-compose-prod.yml up -d

3. Verify the Containers

Check that all services are running correctly:

docker compose ps

4. Test the Deployment

Open a browser and navigate to your server’s address (e.g., http://localhost:3200). Log in using the superuser credentials.

  • Email: SUPERUSER_LOGIN + @example.com
  • Password: SUPERUSER_PASSWORD

Notes

  • Updates and Future Support: We are actively developing a more flexible deployment process using Kubernetes and Kamal. Stay tuned by following our GitHub repository.