_Kurz_ is yet another URL shortener. * built as a Go API * web front end provided * multiple shortening strategies. provided: * 32-bits hexa string, leading 0s omitted * base36 * manual selection * vanity domain support * usage statistics # Installing 1. Download the Kurz server to `$GOPATH/bin` ```bash go get code.osinet.fr/fgm/kurz/cmd/kurzd ``` 1. Download the Kurz client to `$GOPATH/bin` ```bash go get code.osinet.fr/fgm/kurz/cmd/kurz ``` 1. Configure a MySQL database for Kurz, say `osinet_kurz` 1. Create the Kurz configuration ```bash mkdir ~/.kurz cp /cmd/kurzd/dist.config.yml ~/.kurz/config.yml vi ~/.kurz/config.yml 1. Edit the configuration and save it. 1. Discover the server syntax: ```bash kurzd help ``` 1. Load the Kurz schema to the database: ```bash kurzd migrate up ``` # Runnning the Kurz server ```bash kurzd ``` # Operating the Kurz server ## Backing up ```bash kurzd export config > some_config_backup_file.yml kurzd export content > some_content_backup_file.yml ``` This will need some automation, like cron, to trigger backups and ensure backups rotation, as well as removal on uninstall. ## Logging Kurzd [logs to stdout], so any production deployment will need to set up logs acquisition and storage, with rotation, and remove them on uninstall. This is normally part of a SystemD - or equivalent - service configuration. [logs to stdout]: https://12factor.net/logs # Uninstalling 1. Drop the Kurz database ```bash mysql -u -p -e "drop database osinet_kurz;" ``` 1. If the database used a specific user/password, remove them from the database server 1. Remove the Kurz configuration ```bash rm ~/.kurz/config.yml ``` 1. Remove Kurz binaries (assuming an single-component `$GOPATH`) ```bash rm $GOPATH/bin/kurz* ``` # License - Kurz itself is proprietary code (c) 2018 Ouest Systèmes Informatiques (OSInet). - Kurz includes code from the Gorilla Mux project, - under its [BSD 3-clause license][gorilla_license] - to be found in [web/gorilla_imported.go][gorilla_imported] [gorilla_license]: licenses/gorilla_mux-LICENSE.txt [gorilla_imported]: web/gorilla_imported.go