Self-Hosting LittleLink Server with Docker
What Is LittleLink Server?
LittleLink Server is a self-hosted link-in-bio page — a single page that lists links to your social profiles, projects, and content. It’s a Linktree replacement built on the LittleLink template, wrapped in a Node.js server, and configured entirely through environment variables.
No database. No persistent volumes. No admin panel. You define your page in docker-compose.yml, run docker compose up -d, and you’re done. The 63 MB Docker image starts in seconds.
Official site: github.com/techno-tim/littlelink-server
Prerequisites
- A Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose installed (guide)
- 100 MB of free disk space
- 64 MB of RAM
- A domain name (optional, for custom URL like
links.yourdomain.com)
Docker Compose Configuration
Create a docker-compose.yml file:
services:
littlelink:
image: ghcr.io/techno-tim/littlelink-server:latest # No versioned Docker tags published — :latest is the only option
container_name: littlelink
ports:
- "8080:3000"
environment:
# Page metadata
- META_TITLE=Your Name - Links
- META_DESCRIPTION=All my links in one place
- META_AUTHOR=Your Name
- LANG=en
# Profile
- NAME=Your Name
- BIO=Developer | Writer | Self-Hoster
- AVATAR_URL=https://your-avatar-url.com/avatar.jpg
- AVATAR_2X_URL=https://your-avatar-url.com/[email protected]
- FAVICON_URL=https://your-avatar-url.com/favicon.png
# Appearance
- THEME=Dark
- FOOTER=© 2026 Your Name
# Social links — add your URLs, remove any you don't use
- GITHUB=https://github.com/yourusername
- TWITTER=https://twitter.com/yourusername
- YOUTUBE=https://youtube.com/@yourchannel
- MASTODON=https://mastodon.social/@you
- BLUESKY=https://bsky.app/profile/you.bsky.social
- LINKEDIN=https://linkedin.com/in/yourusername
- DISCORD=https://discord.gg/yourinvite
- EMAIL=mailto:[email protected]
- WEBSITE=https://yourdomain.com
# Button order — controls which buttons appear and in what order
- BUTTON_ORDER=GITHUB,TWITTER,YOUTUBE,MASTODON,BLUESKY,LINKEDIN,DISCORD,EMAIL,WEBSITE
- BUTTON_TARGET=_blank
# Analytics (optional — uncomment one)
# - GA_TRACKING_ID=G-XXXXXXXXXX
# - UMAMI_WEBSITE_ID=your-umami-id
restart: unless-stopped
Start the container:
docker compose up -d
Your link page is live at http://your-server-ip:8080.
Configuration
LittleLink Server has no config files or admin panel. Everything is an environment variable in your Compose file.
Supported Platforms
LittleLink Server includes button presets for 100+ platforms. Set the environment variable to your profile URL to enable a button:
| Variable | Platform | Variable | Platform |
|---|---|---|---|
GITHUB | GitHub | MASTODON | Mastodon |
TWITTER | X/Twitter | BLUESKY | Bluesky |
YOUTUBE | YouTube | TWITCH | Twitch |
DISCORD | Discord | REDDIT | |
LINKEDIN | INSTAGRAM | ||
TIKTOK | TikTok | SPOTIFY | Spotify |
PATREON | Patreon | KO_FI | Ko-fi |
PAYPAL | PayPal | EMAIL | |
STEAM | Steam | WEBSITE | Custom website |
For the full list, see the LittleLink Server README.
Custom Buttons
Add custom buttons with numbered variables:
environment:
- CUSTOM_BUTTON_TEXT_ONE=My Blog
- CUSTOM_BUTTON_URL_ONE=https://blog.example.com
- CUSTOM_BUTTON_COLOR_ONE=#333333
- CUSTOM_BUTTON_TEXT_COLOR_ONE=#ffffff
- CUSTOM_BUTTON_ICON_ONE=fas fa-blog
You can add multiple custom buttons using _ONE, _TWO, _THREE, etc.
Analytics Integration
LittleLink Server supports three self-hosted analytics platforms. Uncomment the one you use:
environment:
# Google Analytics
- GA_TRACKING_ID=G-XXXXXXXXXX
# Umami (self-hosted)
- UMAMI_WEBSITE_ID=your-website-id
# Matomo (self-hosted)
- MATOMO_URL=https://matomo.example.com
- MATOMO_SITE_ID=1
See our guides: Self-Host Umami | Self-Host Matomo
Themes
Two built-in themes:
environment:
- THEME=Dark # Dark background, light text (default)
# - THEME=Light # Light background, dark text
Reverse Proxy
To serve your link page on a custom domain (e.g., links.yourdomain.com), set up a reverse proxy pointing to port 8080.
With Nginx Proxy Manager, create a proxy host with:
- Domain:
links.yourdomain.com - Scheme:
http - Forward IP: your server’s IP
- Forward Port:
8080 - SSL: Request a new Let’s Encrypt certificate
For other reverse proxy options: Reverse Proxy Setup
Backup
LittleLink Server is stateless — there’s nothing to back up. Your entire link page is defined in docker-compose.yml. If the container is destroyed, docker compose up -d recreates it identically.
Keep your docker-compose.yml in version control (Git) and you have automatic backup and history.
For your broader backup strategy: Backup Strategy
Troubleshooting
Buttons not appearing
Symptom: You set a platform URL but no button shows up.
Fix: The platform must be listed in BUTTON_ORDER. If BUTTON_ORDER is set, only platforms listed there will appear, regardless of whether their URL is set. Either add the platform to BUTTON_ORDER or remove the BUTTON_ORDER variable entirely to show all buttons with URLs.
Avatar not loading
Symptom: The page shows a broken image where the avatar should be.
Fix: AVATAR_URL must be an absolute URL accessible from the internet, not a local file path. If you don’t have a hosted image, remove the AVATAR_URL variable to use the default placeholder.
Container healthy but page blank
Symptom: Port 8080 responds but the page is empty.
Fix: Check that at least one platform URL is set and NAME is defined. The page needs a minimum of one button and a name to render.
Resource Requirements
- RAM: ~50 MB
- CPU: Negligible — serves static content
- Disk: 63 MB (Docker image, amd64)
- Network: Minimal bandwidth — single page with no media
This is one of the lightest Docker containers you can run.
Verdict
LittleLink Server is the simplest self-hosted link page. The “everything as environment variables” approach means zero maintenance — no database migrations, no updates to apply, no volumes to back up. For a personal profile page that changes a few times a year, this is exactly the right level of complexity.
If you need a web admin panel, multi-user support, or custom themes, use LinkStack instead. If you want stateless simplicity and are comfortable editing a Compose file, LittleLink Server is the better choice.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments