{"id":17696878,"url":"https://github.com/datashaman/wifidog-auth-flask","last_synced_at":"2026-03-04T23:32:03.914Z","repository":{"id":44994057,"uuid":"43601355","full_name":"datashaman/wifidog-auth-flask","owner":"datashaman","description":"An authentication server for Wifidog Captive Portal written in Python Flask, featuring time- and resource-based vouchers.","archived":false,"fork":false,"pushed_at":"2022-12-06T15:42:18.000Z","size":1382,"stargazers_count":23,"open_issues_count":8,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-26T00:41:52.351Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datashaman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-03T14:16:27.000Z","updated_at":"2025-06-12T12:11:33.000Z","dependencies_parsed_at":"2023-01-24T10:16:14.306Z","dependency_job_id":null,"html_url":"https://github.com/datashaman/wifidog-auth-flask","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/datashaman/wifidog-auth-flask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datashaman%2Fwifidog-auth-flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datashaman%2Fwifidog-auth-flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datashaman%2Fwifidog-auth-flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datashaman%2Fwifidog-auth-flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datashaman","download_url":"https://codeload.github.com/datashaman/wifidog-auth-flask/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datashaman%2Fwifidog-auth-flask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30099387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T23:31:22.529Z","status":"ssl_error","status_checked_at":"2026-03-04T23:31:22.112Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-24T14:45:34.742Z","updated_at":"2026-03-04T23:32:03.869Z","avatar_url":"https://github.com/datashaman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wifidog Auth Flask\n\n[![Build Status](http://drone.datashaman.com/api/badges/datashaman/wifidog-auth-flask/status.svg)](http://drone.datashaman.com/datashaman/wifidog-auth-flask)\n[![Coverage Status](https://coveralls.io/repos/github/datashaman/wifidog-auth-flask/badge.svg?branch=master)](https://coveralls.io/github/datashaman/wifidog-auth-flask?branch=master)\n\nVoucher authentication server for Wifidog Captive Portal written in Python Flask. WIP.\n\nSet a time limit or transfer limit (in MB) before the voucher is invalidated. User accounts coming soon.\n\n## Docker\n\nSetup the following aliases to run the docker image. Put this in your _.bashrc_ or _.zshrc_:\n\n    alias wifidog-server=\"docker run --env-file $HOME/.config/wifidog/env -p 5000:5000 -v auth-data:/var/app/data -v auth-uploads:/var/app/uploads -i -t datashaman/wifidog-auth-flask\"\n    alias wifidog=\"docker run --env-file $HOME/.config/wifidog/env -v auth-data:/var/app/data -v auth-uploads:/var/app/uploads --rm -it datashaman/wifidog-auth-flask\"\n\nCreate the file at _$HOME/.config/wifidog/env_ to store your secrets. Look at _.env.example_ for inspiration. Don't add _SQLALCHEMY_DATABASE_URI_, that is handled inside the container.\n\nUse _wifidog-server_ to run the HTTP server. Use _wifidog_ to run CLI commands.\n\nThat will run the latest build of the docker image, by default running the HTTP server on port 5000.\n\nIt will persist the data to a local volume named *auth-data*, and the uploads to a local volume named *auth-uploads*. Change it as you see fit.\n\nVarious commands are available to help you manage the service:\n\n    * wifidog create_country\n    * wifidog create_currency\n    * wifidog create_voucher\n    * wifidog create_network\n    * wifidog create_gateway\n    * wifidog create_user\n    * wifidog create_roles\n    * wifidog create_product\n    * wifidog process_vouchers\n\nCreate roles:\n\n    wifidog create_roles\n\nCreate a user with a role of _super-admin_:\n\n    wifidog create_user user@example.com password super-admin\n\nCreate a network and gateway with that network:\n\n    wifidog create_network example-network \"Example Network\"\n    wifidog create_gateway example-network example-gateway \"Example Gateway\"\n\nThe Wifidog client software should point to this service with the correct *gw_id* to identify the gateway being served.\n\nTo run the HTTP server:\n\n    wifidog-server\n\nThe command *process_vouchers* does the following:\n\n    * Ends any vouchers with no time left.\n    * Expires any new vouchers that are unused after a configurable age (default is _120_ minutes).\n    * Archives any blocked, ended or expired vouchers that have not changed for a configurable age (default is _120_ minutes, the same config as above).\n\nTo run the command:\n\n    wifidog process_vouchers\n\nPut that (or the underlying `docker run` command) into a cron so the system keeps the vouchers list clean.\n\nAll the commands have help text, use __--help__.\n\n## Development\n\nSetup required (for Ubuntu or Debian):\n\n    sudo apt-get install nodejs npm python-pip virtualenvwrapper libjpeg-dev libpng-dev libffi-dev libxml2-dev libxslt-dev\n    sudo npm install -g gulp\n\nLogout and login to activate virtualenvwrapper then:\n\n    mkvirtualenv auth\n\nMake sure you're in your projects folder and clone the repository:\n\n    git clone https://github.com/datashaman/wifidog-auth-flask.git auth\n\nGo into the folder and install the dependencies (you should be in your virtualenv at this point):\n\n    cd auth\n    setvirtualenvproject\n    pip install -r requirements.txt\n    npm install\n\nBuild the static files (see gulpfile.js for details):\n\n\tgulp\n\nCopy the sample .env file to its correct place (and edit it to suit your needs):\n\n    cp .env.example .env\n\nSensitive config is kept in the .env file, non-sensitive config is in config.py.\n\nPlease read the Makefile for many useful development shortcuts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatashaman%2Fwifidog-auth-flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatashaman%2Fwifidog-auth-flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatashaman%2Fwifidog-auth-flask/lists"}