Sign inSign up

jparkerweb/simple-linkz

By jparkerweb

â€ĒUpdated 7 months ago

Image
Web servers
Content management system
0

1.3K

jparkerweb/simple-linkz repository overview

⁠Simple Linkz 🖇ïļ

A lightweight, self-hosted web application for curating and managing your frequently visited links. Built with vanilla JavaScript, Node.js, and Tailwind CSS.

⁠Features

  • âœĻ Beautiful Dashboard - Choose between grid, list, or cards layout
  • 🔐 Secure Authentication - Password-hashed login with session management
  • ðŸŽĻ Customizable Themes - Dark/light mode with 5 accent colors and custom backgrounds
  • 🔍 Search & Filter - Quickly find links as your collection grows
  • ðŸŽŊ Drag & Drop - Reorder links easily with visual feedback
  • ðŸ’ū Import/Export - Backup and restore your links in JSON format
  • ðŸŠķ Lightweight - Minimal dependencies, fast and simple
  • 🎭 Custom Page Titles - Personalize your dashboard title
  • 🌐 Auto Favicons - Automatically fetches favicons for your links
  • 🔀 Reverse Proxy Support - Built-in BASE_PATH support for serving from subpaths

⁠Quick Start

⁠Basic Usage
docker run -d -p 3000:3000 -v ./data:/data jparkerweb/simple-linkz:latest

Visit http://localhost:3000 and create your account on first visit.

Docker Compose

version: '3.8'
services:
  simple-linkz:
    image: jparkerweb/simple-linkz:latest
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data
    environment:
      - PORT=3000
      - SESSION_SECRET=your-secret-key
    restart: unless-stopped

Environment Variables

| Variable       | Description                                              | Default        |
|----------------|----------------------------------------------------------|----------------|
| PORT           | Server port                                              | 3000           |
| SESSION_SECRET | Custom session secret                                    | Auto-generated |
| DATA_DIR       | Data directory path                                      | /data          |
| BASE_PATH      | Optional Base URL path for reverse proxy subpath serving | /              |

Volume Mounts

- /data - Stores all application data (user credentials, links, preferences, sessions)

Important: Always mount a volume to /data to persist your data between container restarts.

First-Time Setup

1. Start the container
2. Visit http://localhost:3000
3. Create your username and password
4. Start adding links!

Security

- Bcrypt password hashing (10 rounds)
- HMAC-SHA256 signed session cookies
- HttpOnly, SameSite=Strict cookie flags
- 7-day session expiration
- Single-user design (no multi-user support)

Deployment Tips

- Run behind a reverse proxy (nginx, Caddy) for HTTPS
- Set a custom SESSION_SECRET for production
- Regularly backup /data/data.json
- Use absolute paths for volume mounts

Port Exposure

- 3000 - HTTP web server (configurable via PORT env var)

Documentation

Full documentation available at: https://github.com/jparkerweb/simple-linkz

License

MIT

Links

- GitHub: https://github.com/jparkerweb/simple-linkz
- Docker Hub: https://hub.docker.com/r/jparkerweb/simple-linkz
- Issues: https://github.com/jparkerweb/simple-linkz/issues

Tag summary

Content type

Image

Digest

sha256:b59b82cf1â€Ķ

Size

49.8 MB

Last updated

7 months ago

docker pull jparkerweb/simple-linkz