SEBN Taskbar Manager
Administration panel for SEBN Taskbar Client.
PIT
Mykyta Nehrych
http://terdvp0001.sebn.com/sebn-taskbar-manager/
Internal Software
faTableCellsLarge
Install dev requirements with poetry with poetry install --with dev-environment. Add virtualenvs.in-project = true in %appdata%\pypoetry\config.toml for creating .venv folder inside project.
Install gettext for compiling binary translation files manually or restart development container.
Update message files: django-admin makemessages --all or django-admin makemessages -l uk_UA
Compile binaries: django-admin compilemessages -i .venv
Build dev image:
docker compose -f development.yml --env-file .env.development build
Run dev:
docker compose -f development.yml --env-file .env.development up
Attach debugger to remote process at port:
8001 - backend
8002 - celery task-queue
8003 - telegram-bot
Build prod:
docker compose -f build.yml --env-file .env.build build --no-cache
Run prod:
docker compose -f production.yml --env-file .env.production up
Also must be runned proxy, sebn-db and rabbitmq services for correct testing.
ADMIN= CELERY_BROKER=amqp://[RABBITMQ_DEFAULT_USER]:[RABBITMQ_DEFAULT_PASS]@celery:5672 # or leave empty for built-in redis usage COMPOSE_FILE= DATA_ACQUISITION_URL=http://*.*.*.*/ EMAIL_HOST= EMAIL_PORT= LANG= LDAP_ADMINS= LDAP_BASE= LDAP_DOMAIN= LDAP_USERNAME= LDAP_PASSWORD= LDAP_HOST= LDAP_PORT= MYSQL_DATABASE= MYSQL_HOST= MYSQL_PASSWORD= MYSQL_PORT= MYSQL_ROOT_PASSWORD= MYSQL_USER= RABBITMQ_DEFAULT_PASS=[.env.development only] RABBITMQ_DEFAULT_USER=[.env.development only] SECRET_KEY= SERVER_EMAIL= TELEGRAM_BOT_TOKEN=[<token>] TZ=
Sysaid client configuration:
{ "impact": { "data": { "1": "... continues", "2": "... limited", "3": "... impossible" }, "default": "1" }, "urgency": { "data": { "1": "... high", "2": "... medium", "3": "... low" }, "default": "2" } }
Sysaid backend configuration:
{ "cookie": "communityUserName=...;communityUserHash=...", "server": "https://...:8443/", "locations": { "LOCATION1": "1", "LOCATION2": "2", "LOCATION3": "3" }, "request_user": "...", "response_id_regex": "<td class=\"Form_Ctrl_Label\" align=\"center\"><label>.*?(\\d+).</label></td>" }
Redmine client configuration:
{ "priority": { "data": { "1": "priority text", "2": "...", "3": "...", "4": "...", "5": "..." }, "default": "2" }, "statuses_to_change": { "close": { "label": "Close...", "status_id": "1" } } }
Redmine backend configuration:
{ "api-key": "", "api-url": "http://hostname/redmine/" }
Helpdesk department model configuration:
{ "redmine": { "identifier": "..." }, "telegram": { "chat_id": -100xxxxxxxxxx } }
send telegram message to category chat_id, if not exist to department chat_id
Category model configuration:
{ "redmine": { "project_id": "000" }, "telegram": { "chat_id": -100xxxxxxxxxx } }
# sebn-taskbar-manager http location /sebn-taskbar-manager/ { set $service sebn-taskbar-manager-http; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://$service; client_max_body_size 500m; } # sebn-taskbar-manager websockets location /sebn-taskbar-manager/ws/ { set $service sebn-taskbar-manager-ws; proxy_pass http://$service; proxy_read_timeout 60s; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }