InstallDocker (one command)

Install with one Docker command

Start Bekci with a single docker run command, open it in your browser and create your admin account. The quickest way to try it.

On this page

By the end of this guide Bekci will be running on your server and you'll be able to open the panel at http://SERVER-IP:8080. Total time: about 3 minutes.

1. Install Docker#

First check whether Docker is already on your server:

terminal
docker --version

If you see a version number (e.g. Docker version 29.x), skip this step. If you see command not found, install Docker with the official install script:

terminal
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

This script is maintained by Docker itself (get.docker.com); on common distributions such as Ubuntu, Debian, Fedora and CentOS/RHEL it installs Docker Engine together with the Compose plugin. If you prefer your distribution's package repository, follow Docker's install docs.

2. Start Bekci#

Copy the whole command below and run it on your server:

terminal
docker run -d --name bekci --restart unless-stopped \
  -p 8080:8080 \
  -v bekci-data:/data \
  kadirsungurlu/bekci:latest

What each part does:

PartMeaning
-dRun the container in the background; it keeps running when you close the terminal.
--name bekciThe container's name. You'll use it in later commands.
--restart unless-stoppedStart again automatically after a server reboot or a crash.
-p 8080:8080Forward the server's port 8080 to Bekci.
-v bekci-data:/dataStore the data in a Docker volume named bekci-data; it survives even if you delete the container.
kadirsungurlu/bekci:latestThe Bekci image on Docker Hub (amd64 and arm64).

3. Open the panel and create the admin account#

  1. Open http://SERVER-IP:8080 in your browser. Your hosting provider's dashboard shows the server's IP address; the first address printed by hostname -I on the server is usually the same.
  2. On the Welcome screen enter a username (3–32 characters: letters, digits, periods, hyphens, underscores) and a password of at least 8 characters, and type the password again in Password (again).
  3. Click Create account.

4. Check the firewall#

If the panel doesn't open, port 8080 is most likely closed.

  • Your hosting provider's firewall (Hetzner, DigitalOcean, AWS “security group”, etc.): allow incoming connections on 8080/TCP.
  • ufw: Docker adds firewall rules for the ports it publishes, so a port published with -p 8080:8080 is reachable from outside regardless of your ufw rules. If you want the opposite, i.e. the panel reachable only from the server itself, change -p 8080:8080 to -p 127.0.0.1:8080:8080.

5. Set BASE_URL#

Bekci needs to know the address the panel is reached at, for links in notifications and for server agent install commands. You provide it with the BASE_URL environment variable. Environment variables are set when the container is created, so you need to recreate the container; your data lives in the volume and is kept:

terminal
docker stop bekci && docker rm bekci
docker run -d --name bekci --restart unless-stopped \
  -p 8080:8080 \
  -v bekci-data:/data \
  -e BASE_URL=http://SERVER-IP:8080 \
  -e TZ=Europe/Istanbul \
  kadirsungurlu/bekci:latest

TZ is the time zone (used for daily summaries and the time of the nightly backup), e.g. Europe/Berlin or UTC. All options: Environment variables.

Where is your data?#

All data (the database and the automatic backups) lives in the bekci-data Docker volume, which is the /data folder inside the container:

terminal
docker exec bekci ls -la /data

Deleting the container (docker rm bekci) does not delete the data. Deleting the volume permanently deletes all data; only do that when removing Bekci for good. For backups see Updates, backups and rollback.

Everyday commands#

terminal
docker stop bekci          # stop
docker start bekci         # start
docker restart bekci       # restart
docker logs -f bekci       # follow the logs (Ctrl+C to quit)
docker logs --tail 50 bekci

The last line of a healthy startup looks like this (“Bekci başladı” means “Bekci started”):

level=INFO msg="Bekci başladı" sürüm=… adres=:8080 veri=/data saat_dilimi=Europe/Istanbul

Updating#

Pull the new image and recreate the container with the same command:

terminal
docker pull kadirsungurlu/bekci:latest
docker stop bekci && docker rm bekci

Then run the docker run command from step 5 again. To make updates a single command, we recommend Docker Compose. Don't forget to back up first: Updates, backups and rollback.

Common problems#

“port is already allocated” or “address already in use”#

Another program is using port 8080. If it's another container, docker ps --filter publish=8080 shows which one. On servers running Coolify, Coolify's proxy uses port 8080 too. Pick another port, e.g. -p 8081:8080, and open the panel at http://SERVER-IP:8081. If you use Coolify, the Coolify guide is a better fit.

The browser says the connection timed out#

Port 8080 may be closed in your provider's firewall; see step 4.

The container keeps restarting#

The line starting with hata: (“error:”) at the end of docker logs bekci tells you why. See Troubleshooting for fixes.

Removing Bekci#

terminal
docker stop bekci && docker rm bekci
docker volume rm bekci-data    # CAREFUL: permanently deletes all data