This dashboard is created to visualize statistics in the Marzban project using the SQLite database built into the container. Metrics are collected for nodes and users. Works only on the marzban:dev branch
Connect our dashboard to run in a docker container. To do this, you need to edit the docker-compose.yml file in the /opt/marzban/ folder
nano /opt/marzban/docker-compose.ymlAdd the following lines:
analytics:
image: lifeindarkside/marzban-analytics:latest
environment:
- MY_SECRET_PASSWORD=YOURPASSWORD
ports:
- 8501:8501
depends_on:
- marzban
volumes:
- /opt/marzban/streamlit/config.yaml:/app/config.yaml
- /opt/marzban/streamlit/main_sqlite_en.py:/app/main_sqlite.py
- /var/lib/marzban:/var/lib/marzban
ATTENTION! Replace YOURPASSWORD with any password of your choice. This is necessary to generate a password hash so that your dashboard does not shine on the entire Internet openly.
Initialize getting container updates.
marzban updateTo get the password hash, run the command
docker exec -it marzban-analytics-1 python passwordhash.pyIn the console you will receive the following information:

Copy the hash obtained in the console (without quotes) and place it in the config.yaml file
nano /opt/marzban/streamlit/config.yamlIn the file you need to replace the login and password hash
For example:
credentials:
usernames:
root: # your login
name: root # display name
password: abc # replace with password hash without quotes
cookie:
expiry_days: 30 # how many days the cookie is valid
key: 'random_key_value' # must be string value
name: random_cookie_name # must be string value
In the key and name strings you can put any text value without spaces (this will save your cookie files)
root: you can replace with any login you want for the dashboard. For example: new_login:
Save the file after editing and copy file main_sqlite_en.py into /opt/marzban/streamlit/ folder.
Update the data in the container:
marzban restartYou can access the dashboard at:
http://ip:8501/
where ip can be the IP address of your server or domain
If you need to change the port, edit the docker-compose.yml file. Change the port parameter in it.
For example:
ports:
- 9901:8501
Download the files directly to the /opt/marzban/ folder
cd /opt/marzban/
git clone https://github.com/lifeindarkside/marzban_sqlite_streamlit.gitConnect our dashboard to run in a docker container. To do this, you need to edit the docker-compose.yml file in the /opt/marzban/ folder
nano /opt/marzban/docker-compose.ymlAdd the following lines:
analytics:
image: lifeindarkside/marzban-analytics:latest
environment:
- MY_SECRET_PASSWORD=YOURPASSWORD
ports:
- 8501:8501
depends_on:
- marzban
volumes:
- /opt/marzban/streamlit/config.yaml:/app/config.yaml
- /opt/marzban/streamlit/main_sqlite_en.py:/app/main_sqlite.py
- /var/lib/marzban:/var/lib/marzban
ATTENTION! Replace YOURPASSWORD with any password of your choice. This is necessary to generate a password hash so that your dashboard does not shine on the entire Internet openly.
The final file should look something like this:
services:
marzban:
image: gozargah/marzban:dev
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/marzban:/var/lib/marzban
analytics:
build: ./marzban_sqlite_streamlit
environment:
- MY_SECRET_PASSWORD=abc123123123
ports:
- 8501:8501
depends_on:
- marzban
volumes:
- /opt/marzban/marzban_sqlite_streamlit:/app
- /opt/marzban/streamlit/main_sqlite_en.py:/app/main_sqlite.py
- /var/lib/marzban:/var/lib/marzban
To run you need to update and then restart:
marzban updatemarzban restartAs a result, the panel will start, but access to it will not be possible. Since we did not change the password hash.
To get the password hash, run the command:
docker exec -it marzban-analytics-1 python passwordhash.pyIn the console you will receive the following information:

Copy the hash received in the console and place it in the config.yaml file:
nano /opt/marzban/marzban_sqlite_streamlit/config.yamlIn the file you need to replace the login and password hash:
For example:
credentials:
usernames:
root: #your login
name: root #display name
password: abc # To be replaced with hashed password
cookie:
expiry_days: 30
key: 'abc' # Must be string
name: random_cookie_name # Must be string
In the key and name strings you can put any text value without spaces (this will save your cookie files)
Save the file after editing
You can access the dashboard at:
http://ip:8501/
where ip can be the IP address of your server or domain
If you need to change the port, edit the docker-compose.yml file. Change the port parameter in it.
For example:
ports:
- 9901:8501




