{"id":13337083,"url":"https://gitlab.com/Tardo/twp","last_synced_at":"2025-03-11T04:31:28.162Z","repository":{"id":63919404,"uuid":"6592726","full_name":"Tardo/twp","owner":"Tardo","description":"Teeworlds Web Panel","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":0,"open_issues_count":5,"forks_count":2,"subscribers_count":null,"default_branch":"0.4.0","last_synced_at":"2024-10-25T13:10:30.373Z","etag":null,"topics":["app","docker","management","server","teeworlds","web"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://gitlab.com/uploads/-/system/project/avatar/6592726/splashtee3.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-03T23:37:17.252Z","updated_at":"2018-06-08T18:15:47.713Z","dependencies_parsed_at":"2023-02-21T22:00:52.423Z","dependency_job_id":null,"html_url":"https://gitlab.com/Tardo/twp","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/Tardo%2Ftwp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/Tardo%2Ftwp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/Tardo%2Ftwp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/Tardo%2Ftwp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/Tardo","download_url":"https://gitlab.com/Tardo/twp/-/archive/0.4.0/twp-0.4.0.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4518022,"owners_count":6813,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":["app","docker","management","server","teeworlds","web"],"created_at":"2024-07-29T19:11:13.026Z","updated_at":"2025-03-11T04:31:27.259Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/6592726/splashtee3.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teeworlds Web Panel [![Circle CI](https://circleci.com/gh/Tardo/twp/tree/0.4.0.svg?style=svg)](https://circleci.com/gh/Tardo/twp/tree/0.4.0)\nTWP is an app-web for manage your local teeworlds linux servers. Inspired by the work of '[LXC Web Panel](https://github.com/lxc-webpanel/LXC-Web-Panel)'.\n\n\nProject Requirements:\n\n**Server Side**\n- [SQLite](https://www.sqlite.org/) for default database\n- [Flask v0.12](http://flask.pocoo.org/) for web development\n - [Flask APScheduler v1.7.1](https://github.com/viniciuschiele/flask-apscheduler) for periodically tasks\n - [Flask Babel v0.11.2](https://pythonhosted.org/Flask-Babel/) for i18n and l10n support\n - [Flask WTF v0.14.2](https://flask-wtf.readthedocs.io/en/latest/) for CSRF protection and recaptcha\n - [Flask Assets v0.12](http://flask-assets.readthedocs.io/) for integrate webassets (Asset management for Python web development)\n - [Flask SQLAlchemy v2.3.1](http://flask-sqlalchemy.pocoo.org/2.2/) for SQLAlchemy ORM support\n- [JSMin](https://pypi.python.org/pypi/jsmin) a javascript minifier\n- [CSSMin](https://pypi.python.org/pypi/cssmin/) a python port of the YUI CSS compression algorithm\n- [Teeworlds Serverlist Library](https://blog.mnus.de/2011/07/teeworlds-serverlist-library-for-python/) for teeworlds requests\n- [Pillow v4.1.1](https://pypi.python.org/pypi/Pillow/4.1.1) for generate png images\n- [MergeDict v0.2.0](https://pypi.python.org/pypi/mergedict/0.2.0) for make the life easier with python dictionaries\n- *tarfile, zipfile, urllib, subprocess, telnetlib, ... and many other python packages are used too!*\n\n**Client Side**\n- [Font Awesome v4.7.0](http://fontawesome.io/) for awesome icons\n- [ChartistJS v0.11.0](http://gionkunz.github.io/chartist-js/) for responsive charts\n- [MomentJS v2.19.2](http://momentjs.com/) for easy date manage\n- [Clipboard v1.7.1](http://clipboardjs.com) for copy to clipboard\n- [JQuery v3.2.1](http://jquery.com/) for easy dom interaction and much more...\n  - [Bootstrap v4.0.0b2](http://getbootstrap.com/) for widgets and responsive design\n    - [PopperJS v1.12.9](https://popper.js.org/) for element positioning\n    - [Bootbox v5.0.0](http://bootboxjs.com/) for dialogs\n    - [Bootstrap Colorpicker v2.5.1](http://mjolnic.com/bootstrap-colorpicker/)\n  - [Select2 v4.0.3](https://select2.github.io) - JQuery replacement for select boxes\n\n### Installation (Debian based distributions)\n_NOTE: If you want an production deploy read '[Deploying](https://github.com/Tardo/twp#-deploying)' section._\n\n**Automatic (Full) --Warning: builtin server--**\n```bash\n$ wget http://tardo.github.io/twp/tools/install.sh \u0026\u0026 sudo bash install.sh\n```\nor...\n```bash\n$ wget http://tardo.github.io/twp/tools/install.sh \u0026\u0026 su -c \"bash install.sh $USER\"\n```\n\n**Manual (Basic)**\n```bash\n$ sudo apt-get install gcc python python-dev python-pip git libjpeg-dev zlib1g-dev libfreetype6-dev\n$ git clone https://github.com/Tardo/twp.git\n$ cd twp\n$ sudo pip install -r requirements.txt\n$ chmod a+x run.py\n$ ./run.py\n\n```\n\n### Get Started\n0. Configure the app, see the file 'twp.conf'\n1. Run or restart the app\n\n### .zip/.tar.gz/folder mod structure\n```\nmod_folder\n  - data\n    + mapres\n    + maps\n  config.cfg*\n  license.txt*\n  readme.txt*\n  teeworlds_srv\n  config.json*\n```\n_(*) Not required but recommended_\n\n### .zip/.tar.gz map packages\nTWP allows you to upload maps in packages instead of using an standalone .map file. The package only can contain .map files (whitout folders)\n\n### Enable Basic Admin Tools\nIf like kick, ban and 'econ admin' you need define 'ec_port' and 'ec_password' variables in the instance server config.\n\n### Available RDBMS/ORDBMS\nYou can change the 'uri' param in 'database' on 'twp.conf' file for use most of these dialects:\nhttp://docs.sqlalchemy.org/en/latest/dialects/\n\n### Deploying\nSee how: http://flask.pocoo.org/docs/0.10/deploying/\n\n### Translations\n_You will need install 'pybabel'_\n\n\n** Do this using the project directory!\n\n- Generate .pot file\n```bash\n$ pybabel extract -F babel.cfg -o messages.pot .\n```\n- Generate folder structure and .po file (Omit if you already do it)\n```bash\n$ pybabel init -i messages.pot -d translations -l \u003clanguage code: ISO 639-1\u003e\n```\n\n_** Otherwise, if changed strings on the source, you will need update current translations_\n```bash\n$ pybabel update -i messages.pot -d translations\n```\n\n- Edit .po file(s) using for example '[poedit](http://poedit.net/download)'\n\n- Compile:\n```bash\n$ pybabel compile -d translations\n```\n\n### Possible Problems\n- Get the exception ```UnkownTimeZoneError```:\n   To fix this configure the time zone of your system: ```dpkg-reconfigure tzdata```\n\n\n### Limits\n- Can't use autoexec.cfg! (TWP uses the configuration file like a ID for distinguish between instances of same mod)\n- The default maximum size of upload is 16MB per mod (can change it in twp.conf)\n- The theoretical maximum time that you can have statistics on a 16-player server is 'only' of ~2,193534065×10¹² years (with sqlite)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2FTardo%2Ftwp","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2FTardo%2Ftwp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2FTardo%2Ftwp/lists"}