docker_deployment_notes/kutt/README.md

164 lines
3.7 KiB
Markdown
Raw Normal View History

2023-01-31 23:27:59 +00:00
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/
2023-02-03 16:56:13 +00:00
├── .env
2023-01-31 23:27:59 +00:00
├── 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 <support@kutt.it>". 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=
2023-02-03 16:56:13 +00:00
```