Circlo is a modern self-hosted community platform designed for creators, teams, and organizations to build private or public communities with discussions, posts, and monetized content spaces. It includes membership plans, role-based access control, and structured content spaces for scalable community growth.
Demo link: https://circlodemo.com
For admin:
- Admin login: demo@example.com
- Admin password: 11111111
For user:
- User login: user@example.com
- User password: 11111111
The installation takes about 10 minutes and is divided into 2 steps to begin:
- Create a server and copy your server's IP address.
- Create a domain where you want to install Circlo, then add a type A DNS record, @ pointing to your server's IP address. Also add another type A DNS record, * pointing to your server's IP address.
To set up the environment (Docker, Git) and deploy the project on a clean Ubuntu/Debian server, run:
We recommend using instances with at least 4 GB of memory; for example, we tested on:
- DigitalOcean: 4 GB Memory / 2 Intel vCPUs / 120 GB Disk
- Hetzner: CX33 | x86 | 80 GB (8GB memory) - we recommend
curl -sSL https://raw.githubusercontent.com/elementarlabsdev/circlo-deploy/main/setup.sh | bashThis script will:
- Update the system and install Docker & Git.
- Clone this repository to
circlo-deploy. - Generate secure random passwords for
.env. - Provide instructions to start the containers.
Before proceeding, ensure you have the following installed:
- Git
- Docker
- Docker Compose
If you need to install these tools manually:
-
Install Git:
sudo apt update && sudo apt install -y git -
Install Docker & Docker Compose V2:
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update # Install Docker packages: sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
Manage Docker as a non-root user (optional):
sudo usermod -aG docker $USER # Log out and log back in for changes to take effect.
-
Clone the repository:
git clone https://github.com/elementarlabsdev/circlo-deploy.git cd circlo-deploy -
Run the installation script:
./install.sh
This script will:
- Create
.envfrom.env.exampleif it doesn't exist. - Generate random secrets for JWT and database passwords.
- Ask for configuration (Domain, Locale, Email).
- Pull images and start the stack.
- Create
To update the project to the latest version and apply migrations:
./update.sh- View logs:
docker compose logs -f - Stop the stack:
docker compose down - Start the stack:
docker compose up -d - Check status:
docker compose ps
Configuration is stored in the .env file. Key variables:
DOMAIN: Your domain name (e.g.,example.com).CERT_MAIL: Email for SSL certificate (Caddy).LOCALE: System language (en,pl, etc.).JWT_SECRET,REDIS_PASSWORD,POSTGRES_PASSWORD,CAP_ADMIN_KEY: Generated automatically.