diff --git a/kutt/README.md b/kutt/README.md new file mode 100644 index 0000000..740435f --- /dev/null +++ b/kutt/README.md @@ -0,0 +1,163 @@ +Bit.ly alternative that looks more modern and nicer than YOURLS +https://kutt.it + +This is not a full tutorial but more of a reference. + +### Minimum File Structure +``` +/home/ +└── ~/ + └── docker/ + └── kutt/ + ├── .env + ├── docker-compose.yml +``` +### Add to Caddyfile (from ~/docker/caddy) +Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile. + +``` +urls.YOURDOMAIN.com { + reverse_proxy kutt:80 +} +``` + +### docker-compose.yml +Change YOURDATABASEPASSWORD in 2 lines and change YOURADMINUSERPASSWORD in one line from the yml below. + + + + +``` +version: "3" + +services: + kutt: + image: kutt/kutt + container_name: kutt + restart: unless-stopped + depends_on: + - kutt-db + - kutt-redis + command: ["./wait-for-it.sh", "kutt-db:5432", "--", "npm", "start"] +# ports: +# - "3000:3000" + env_file: + - .env + environment: + DB_HOST: kutt-db + DB_NAME: kutt + DB_USER: user + DB_PASSWORD: pass + REDIS_HOST: kutt-redis + + kutt-redis: + image: redis:6.0-alpine + container_name: kutt-redis + restart: unless-stopped + volumes: + - ./redis_data:/data + + kutt-db: + image: postgres:12-alpine + container_name: kutt-db + restart: unless-stopped + environment: + POSTGRES_USER: user + POSTGRES_PASSWORD: pass + POSTGRES_DB: kutt + volumes: + - ./postgres_data:/var/lib/postgresql/data + +networks: + default: + external: + name: caddy_net +``` + +### .env file +Quick Notes +You need to set ADMIN_EMAILS= to your email address that you plan to use as your admin account. +You also need to set up the MAIL_ section otherwise registration with the admin account will fail. +After creating the admin account and succesfully registering. +For private use only set DISALLOW_REGISTRATION=false and keep DISALLOW_ANONYMOUS_LINKS=true +To allow the public use your service set DISALLOW_ANONYMOUS_LINKS=false + +``` +# App port to run on +PORT=3000 + +# The name of the site where Kutt is hosted +SITE_NAME=Kutt + +# The domain that this website is on +DEFAULT_DOMAIN=urls.YOURDOMAIN.com + +# Generated link length +LINK_LENGTH=6 + +# Postgres database credential details. Don't fill out if using docker-compose. +DB_HOST=kutt-db +DB_PORT=5432 +DB_NAME=postgres +DB_USER= +DB_PASSWORD= +DB_SSL=false + +# Redis host and port. Don't fill out if using docker-compose. +REDIS_HOST=kutt-redis +REDIS_PORT=6379 +REDIS_PASSWORD= +REDIS_DB= + +# Disable registration +DISALLOW_REGISTRATION=false + +# Disable anonymous link creation +DISALLOW_ANONYMOUS_LINKS=true + +# The daily limit for each user +USER_LIMIT_PER_DAY=1000 + +# Create a cooldown for non-logged in users in minutes +# Set 0 to disable +NON_USER_COOLDOWN=0 + +# Max number of visits for each link to have detailed stats +DEFAULT_MAX_STATS_PER_LINK=100000 + +# Use HTTPS for links with custom domain +CUSTOM_DOMAIN_USE_HTTPS=true + +# A passphrase to encrypt JWT. Use a long and secure key. +JWT_SECRET=securekey + +# Admin emails so they can access admin actions on settings page +# Comma seperated +ADMIN_EMAILS= + +# Invisible reCaptcha secret key +# Create one in https://www.google.com/recaptcha/intro/ +RECAPTCHA_SITE_KEY= +RECAPTCHA_SECRET_KEY= + +# Google Cloud API to prevent from users from submitting malware URLs. +# Get it from https://developers.google.com/safe-browsing/v4/get-started +GOOGLE_SAFE_BROWSING_KEY= + +# Your email host details to use to send verification emails. +# More info on http://nodemailer.com/ +# Mail from example "Kutt ". Leave empty to use MAIL_USER +MAIL_HOST= +MAIL_PORT= +MAIL_SECURE=false +MAIL_USER= +MAIL_FROM= +MAIL_PASSWORD= + +# The email address that will receive submitted reports. +REPORT_EMAIL= + +# Support email to show on the app +CONTACT_EMAIL= + +``` \ No newline at end of file