{"id":28540752,"url":"https://github.com/leecade/coturn","last_synced_at":"2025-09-14T07:33:43.113Z","repository":{"id":33054061,"uuid":"36690404","full_name":"leecade/coturn","owner":"leecade","description":"Automatically exported from code.google.com/p/coturn","archived":false,"fork":false,"pushed_at":"2015-06-01T21:44:34.000Z","size":2716,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T19:49:29.603Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leecade.png","metadata":{"files":{"readme":"README.turnadmin","changelog":"ChangeLog","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-06-01T21:36:22.000Z","updated_at":"2015-06-01T21:41:07.000Z","dependencies_parsed_at":"2022-08-07T19:30:33.561Z","dependency_job_id":null,"html_url":"https://github.com/leecade/coturn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leecade/coturn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecade%2Fcoturn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecade%2Fcoturn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecade%2Fcoturn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecade%2Fcoturn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leecade","download_url":"https://codeload.github.com/leecade/coturn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecade%2Fcoturn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275076532,"owners_count":25401313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-06-09T19:37:11.905Z","updated_at":"2025-09-14T07:33:43.104Z","avatar_url":"https://github.com/leecade.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"GENERAL INFORMATION\n\nturnadmin is a TURN administration tool. This tool can be used to manage \nthe user accounts (add/remove users, generate \nTURN keys for the users). For security reasons, we do not recommend \nstoring passwords openly. The better option is to use pre-processed \"keys\" \nwhich are then used for authentication. These keys are generated by turnadmin. \nTurnadmin is a link to turnserver binary, but turnadmin performs different \nfunctions.\n\nOptions note: turnadmin has long and short option names, for most options.\nSome options have only long form, some options have only short form. Their syntax \nsomewhat different, if an argument is required:\n\nThe short form must be used as this (for example):\n\n  $ turnadmin -u \u003cusername\u003e ...\n  \nThe long form equivalent must use the \"=\" character:\n\n  $ turnadmin --user=\u003cusername\u003e ...\n  \nIf this is a flag option (no argument required) then their usage are the same, for example:\n\n $ turnadmin -k ...\n \nis equivalent to:\n\n $ turnadmin --key ...\n\nYou have always the use the -r \u003crealm\u003e option with commands for long term credentials - \nbecause data for multiple realms can be stored in the same database.\n \n=====================================\n\n  NAME\n\nturnadmin - a TURN relay administration tool. \n  \n  SYNOPSIS  \n\n$ turnadmin [command] [options]\n\n$ turnadmin [ -h | --help]\n\n  DESCRIPTION\n  \nCommands:  \n\n-P, --generate-encrypted-password\tGenerate and print to the standard\noutput an encrypted form of a password (for web admin user or CLI).\nThe value then can be used as a safe key for the password\nstorage on disk or in the database. Every invocation for the same password\nproduces a different result. The for mat of the encrypted password is:\n$5$\u003c...salt...\u003e$\u003c...sha256(salt+password)...\u003e. Salt is 16 characters,\nthe sha256 output is 64 characters. Character 5 is the algorithm id (sha256).\nOnly sha256 is supported as the hash function.\n\n-k, --key\t\tGenerate key for a long-term credentials mechanism user.\n\n-a, --add       \tAdd or update a long-term user.\n\n-A, --add-admin    \tAdd or update an admin user.\n\n-d, --delete\t\tDelete a long-term user.\n\n-D, --delete-admin\t\tDelete an admin user.\n\n-l, --list\t\tList long-term users in the database.\n\n-L, --list-admin\t\tList admin users in the database.\n\n-s, --set-secret=\u003cvalue\u003e Add shared secret for TURN RESP API\n\n-S, --show-secret\tShow stored shared secrets for TURN REST API\n\n-X, --delete-secret=\u003cvalue\u003e Delete a shared secret.\n\t--delete-all_secrets\tDelete all shared secrets for REST API.\n\t\n-O, --add-origin\t\tAdd origin-to-realm relation.\n\n-R, --del-origin\t\tDelete origin-to-realm relation.\n\n-I, --list-origins\t\tList origin-to-realm relations.\n\n-g, --set-realm-option\t\tSet realm params: max-bps, total-quota, user-quota.\n\n-G, --list-realm-options\tList realm params.\n  \nOptions with required values:  \n\n-b, --db, --userdb\tSQLite user database file name (default - /var/db/turndb or\n\t\t\t/usr/local/var/db/turndb or /var/lib/turn/turndb).\n\t\t\tSee the same option in the turnserver section.\n-e, --psql-userdb\tPostgreSQL user database connection string.\n\t\t\tSee the --psql-userdb option in the turnserver section.\n-M, --mysql-userdb\tMySQL user database connection string.\n\t\t\tSee the --mysql-userdb option in the turnserver section.\n-J, --mongo-userdb\tMongoDB user database connection string.\n\t\t\tSee the --mysql-mongo option in the turnserver section.\n-N, --redis-userdb\tRedis user database connection string.\n\t\t\tSee the --redis-userdb option in the turnserver section.\n-u, --user\t\tUser name.\n-r, --realm\t\tRealm.\n-p, --password\t\tPassword.\n-o, --origin\t\tOrigin\n--max-bps\t\tSet value of realm's max-bps parameter.\n--total-quota\tSet value of realm's total-quota parameter.\n--user-quota\tSet value of realm's user-quota parameter. \n-h, --help\t\tHelp.\n\nCommand examples:  \n\nGenerate an encrypted form of a password:\n\n$ turnadmin -P -p \u003cpassword\u003e\n\nGenerate a key:\n\n$ turnadmin -k -u \u003cusername\u003e -r \u003crealm\u003e -p \u003cpassword\u003e\n  \nAdd/update a user in the in the database:\n\n$ turnadmin -a [-b \u003cuserdb-file\u003e | -e \u003cdb-connection-string\u003e | -M \u003cdb-connection-string\u003e | -N \u003cdb-connection-string\u003e ] -u \u003cusername\u003e -r \u003crealm\u003e -p \u003cpassword\u003e\n  \nDelete a user from the database:\n\n$ turnadmin -d [-b \u003cuserdb-file\u003e | -e \u003cdb-connection-string\u003e | -M \u003cdb-connection-string\u003e | -N \u003cdb-connection-string\u003e ] -u \u003cusername\u003e -r \u003crealm\u003e\n\nList all long-term users in MySQL database:\n\n$ turnadmin -l --mysql-userdb=\"\u003cdb-connection-string\u003e\" -r \u003crealm\u003e\n\nList all admin users in Redis database:\n\n$ turnadmin -L --redis-userdb=\"\u003cdb-connection-string\u003e\"\n\nSet secret in MySQL database:\n\n$ turnadmin -s \u003csecret\u003e --mysql-userdb=\"\u003cdb-connection-string\u003e\" -r \u003crealm\u003e\n\nShow secret stored in PostgreSQL database:\n\n$ turnadmin -S --psql-userdb=\"\u003cdb-connection-string\u003e\" -r \u003crealm\u003e\n\nSet origin-to-realm relation in MySQL database:\n\n$ turnadmin --mysql-userdb=\"\u003cdb-connection-string\u003e\" -r \u003crealm\u003e -o \u003corigin\u003e\n\nDelete origin-to-realm relation from Redis DB:\n\n$ turnadmin --redis-userdb=\"\u003cdb-connection-string\u003e\" -o \u003corigin\u003e\n\nList all origin-to-realm relations in Redis DB:\n\n$ turnadmin --redis-userdb=\"\u003cdb-connection-string\u003e\" -I\n\nList the origin-to-realm relations in PostgreSQL DB for a single realm:\n\n$ turnadmin --psql-userdb=\"\u003cdb-connection-string\u003e\" -I -r \u003crealm\u003e\n  \nHelp:  \n\n$ turnadmin -h\n\n=======================================\n \n  DOCS\n\nAfter installation, run the command:\n\n$ man turnadmin\n\nor in the project root directory:\n\n$ man -M man turnadmin\n\nto see the man page.\n\n=====================================\n\n  FILES\n\n/etc/turnserver.conf\n\n/var/db/turndb\n\n/usr/local/var/db/turndb\n\n/var/lib/turn/turndb\n\n/usr/local/etc/turnserver.conf\n\n=====================================\n\n  DIRECTORIES\n\n/usr/local/share/turnserver\n\n/usr/local/share/doc/turnserver\n\n/usr/local/share/examples/turnserver\n\n======================================\n\n  SEE ALSO\n\n\tturnserver, turnutils\n\n======================================\n\n  WEB RESOURCES\n\n\tproject page:\n\n\thttp://code.google.com/p/coturn/\n\n\tWiki page:\n\n\thttp://code.google.com/p/coturn/wiki/Readme\n\n\tforum:\n\n\thttps://groups.google.com/forum/?fromgroups=#!forum/turn-server-project-rfc5766-turn-server/\n\n======================================\n\n  AUTHORS\n\n\tOleg Moskalenko \u003cmom040267@gmail.com\u003e\n\n\tGabor Kovesdan http://kovesdan.org/\n\n\tDaniel Pocock http://danielpocock.com/\n\n\tJohn Selbie (jselbie@gmail.com)\n\n\tLee Sylvester \u003clee@designrealm.co.uk\u003e\n\n\tErik Johnston \u003cerikj@openmarket.com\u003e\n\n\tRoman Lisagor \u003croman@demonware.net\u003e\n\t\n\tVladimir Tsanev \u003ctsachev@gmail.com\u003e\n\t\n\tPo-sheng Lin \u003cpersonlin118@gmail.com\u003e\n\t\n\tPeter Dunkley \u003cpeter.dunkley@acision.com\u003e\n\t\n\tMutsutoshi Yoshimoto \u003cmutsutoshi.yoshimoto@mixi.co.jp\u003e\n\n\tFederico Pinna \u003cfpinna@vivocha.com\u003e\n\n\tBradley T. Hughes \u003cbradleythughes@fastmail.fm\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecade%2Fcoturn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleecade%2Fcoturn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecade%2Fcoturn/lists"}