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
- 1. Install Docker
- 2. Start Bekci
- 3. Open the panel and create the admin account
- 4. Check the firewall
- 5. Set BASE_URL
- Where is your data?
- Everyday commands
- Updating
- Common problems
- “port is already allocated” or “address already in use”
- The browser says the connection timed out
- The container keeps restarting
- Removing Bekci
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:
docker --versionIf 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:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.shThis 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:
docker run -d --name bekci --restart unless-stopped \
-p 8080:8080 \
-v bekci-data:/data \
kadirsungurlu/bekci:latestWhat each part does:
| Part | Meaning |
|---|---|
-d | Run the container in the background; it keeps running when you close the terminal. |
--name bekci | The container's name. You'll use it in later commands. |
--restart unless-stopped | Start again automatically after a server reboot or a crash. |
-p 8080:8080 | Forward the server's port 8080 to Bekci. |
-v bekci-data:/data | Store the data in a Docker volume named bekci-data; it survives even if you delete the container. |
kadirsungurlu/bekci:latest | The Bekci image on Docker Hub (amd64 and arm64). |
3. Open the panel and create the admin account#
- Open
http://SERVER-IP:8080in your browser. Your hosting provider's dashboard shows the server's IP address; the first address printed byhostname -Ion the server is usually the same. - 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).
- 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:8080is 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:8080to-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:
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:latestTZ 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:
docker exec bekci ls -la /dataDeleting 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#
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 bekciThe 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/IstanbulUpdating#
Pull the new image and recreate the container with the same command:
docker pull kadirsungurlu/bekci:latest
docker stop bekci && docker rm bekciThen 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#
docker stop bekci && docker rm bekci
docker volume rm bekci-data # CAREFUL: permanently deletes all dataSomething missing or wrong on this page? Report it on GitHub or email [email protected]