Browse topics

Configuration

Most options are managed in the browser under Admin → Settings. A few server-level values live in config/config.php, which the installer creates.

Admin settings

SectionWhat you can change
GeneralSite name, page title, meta description, default time zone
BrandingLogos, favicon, colors, light/dark appearance, social preview, footer and copyright (see Branding)
LinksDefault domain, default redirect type, random alias length and characters, custom alias length, reserved aliases, duplicate destination policy, bulk row limit
AnalyticsRetention period, IP anonymization, storing IP addresses and user agents, counting bots, GeoLite2 database upload
RegistrationOpen or closed registration, required email verification
EmailSender name and address, PHP mail() or SMTP (host, port, encryption, username, password), test email
SecuritySession lifetime, login lockout, minimum password length, HSTS, blocking private destination addresses, rate limits
API & webhooksEnable or disable the API and webhooks, key and webhook limits, delivery attempts and timeout
DomainsAllow users to add custom domains, domains per user, require SSL, re-check interval, failure threshold, DNS resolvers
MaintenanceMaintenance mode, message, keep short links working during maintenance

Changes apply immediately and are recorded in the audit log.

Email

Email is used for password resets, email verification and notifications.

  • PHP mail() works on most cPanel hosts with no setup. Use a sender address on your own domain to avoid spam folders.
  • SMTP is more reliable. In cPanel, create a mailbox under Email Accounts and use its SMTP settings (usually mail.example.com, port 465 with SSL or 587 with TLS).

Use Send test email in Admin → Settings → Email to confirm delivery. The SMTP password is stored encrypted.

Country and city analytics (GeoLite2)

Geographic analytics use a local MaxMind GeoLite2 database. No visitor data is sent to a third party.

  1. Create a free account at maxmind.com.
  2. Download GeoLite2 City (or GeoLite2 Country) in the .mmdb format.
  3. Upload the file in Admin → Settings → Analytics.

Until a database is uploaded, location shows as Unknown. MaxMind updates the files regularly; upload a fresh copy every few weeks.

config/config.php

This file is generated by the installer. It is never served to browsers. Edit it only if you move the site or need an advanced option.

KeyMeaning
db.host, db.port, db.name, db.user, db.passDatabase connection
app.urlBase URL of the installation, for example https://example.com
app.keySecret key used for encryption and signatures. Never change or share it
app.timezoneDefault time zone
security.trusted_proxiesIP addresses or CIDR ranges of reverse proxies/CDNs whose X-Forwarded-For and X-Forwarded-Proto headers are trusted
security.allow_private_networkfalse by default. Allows private IPs for webhooks and domain checks (intranet installs only)

Important: app.key encrypts stored secrets (SMTP password, webhook secrets) and signs the audit log. If it changes, those values can no longer be read. Backups include it so a restore keeps everything working.

Moving to a new domain

  1. Update app.url in config/config.php.
  2. The main domain changes with it. Existing short links on the main domain now use the new host.
  3. Custom short domains are not affected.

Behind a CDN or proxy

If you use Cloudflare or another proxy, add its IP ranges to security.trusted_proxies so visitor IPs and HTTPS are detected correctly. Without it, analytics see the proxy's address.