Shiori Simple Bookmark Manager
Simple bookmark manager with archive functionality, written in Go.
Overview
Shiori is a lightweight, self-hosted bookmark manager written in Go that allows users to save, organize, and archive web pages locally. Originally inspired by Pocket but designed for self-hosting enthusiasts, Shiori automatically creates offline copies of bookmarked pages, making your saved content accessible even when the original websites are down. The application features a clean web interface, full-text search capabilities, and the ability to organize bookmarks with tags and folders. This Docker stack combines Shiori with nginx to provide a production-ready deployment with proper reverse proxy handling, SSL termination capabilities, and improved performance through static file caching. The nginx layer adds professional-grade features like rate limiting, compression, and security headers that make Shiori suitable for team usage or public-facing deployments. This combination is particularly valuable for organizations wanting to provide their teams with a centralized, private bookmark management solution that doesn't rely on external services like Google Bookmarks or Pocket, ensuring complete data ownership and privacy.
Key Features
- Automatic webpage archiving with full content preservation including images and CSS
- Full-text search across bookmark titles, content, and tags with instant results
- RESTful API for programmatic bookmark management and bulk operations
- Browser extension support for Chrome and Firefox with one-click bookmarking
- Command-line interface for batch importing bookmarks from other services
- Tag-based organization system with hierarchical folder structure support
- nginx-powered static file caching for faster bookmark thumbnail and archive loading
- Built-in duplicate detection to prevent saving the same URL multiple times
Common Use Cases
- 1Development teams maintaining shared technical documentation and reference links
- 2Research organizations archiving web resources for long-term academic projects
- 3Content creators building private libraries of inspiration and reference materials
- 4Small businesses creating centralized knowledge bases from web resources
- 5Privacy-conscious individuals replacing cloud bookmark services with self-hosted alternatives
- 6Educational institutions providing students with curated, archived web resources
- 7Remote teams collaborating on project research with shared bookmark collections
Prerequisites
- Minimum 512MB RAM for Shiori application and bookmark indexing operations
- Available ports 80 and 443 for nginx web server and SSL termination
- Port 8080 free for direct Shiori access during initial setup and configuration
- Basic understanding of nginx configuration for SSL certificate setup and domain routing
- Docker Compose version 3.8+ for proper volume mounting and networking features
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 shiori: 3 image: ghcr.io/go-shiori/shiori:latest4 ports: 5 - "8080:8080"6 volumes: 7 - shiori_data:/shiori8 environment: 9 SHIORI_DIR: /shiori10 networks: 11 - shiori-net12 restart: unless-stopped1314 nginx: 15 image: nginx:alpine16 ports: 17 - "80:80"18 - "443:443"19 volumes: 20 - ./nginx.conf:/etc/nginx/nginx.conf:ro21 depends_on: 22 - shiori23 networks: 24 - shiori-net25 restart: unless-stopped2627volumes: 28 shiori_data: 2930networks: 31 shiori-net: 32 driver: bridge.env Template
.env
1# Shiori Configuration2# Default login: shiori / gopherUsage Notes
- 1Web UI at http://localhost:8080
- 2Default login: shiori / gopher
- 3Lightweight and fast
- 4CLI and browser extensions available
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
shiori
shiori:
image: ghcr.io/go-shiori/shiori:latest
ports:
- "8080:8080"
volumes:
- shiori_data:/shiori
environment:
SHIORI_DIR: /shiori
networks:
- shiori-net
restart: unless-stopped
nginx
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- shiori
networks:
- shiori-net
restart: unless-stopped
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 shiori:5 image: ghcr.io/go-shiori/shiori:latest6 ports:7 - "8080:8080"8 volumes:9 - shiori_data:/shiori10 environment:11 SHIORI_DIR: /shiori12 networks:13 - shiori-net14 restart: unless-stopped1516 nginx:17 image: nginx:alpine18 ports:19 - "80:80"20 - "443:443"21 volumes:22 - ./nginx.conf:/etc/nginx/nginx.conf:ro23 depends_on:24 - shiori25 networks:26 - shiori-net27 restart: unless-stopped2829volumes:30 shiori_data:3132networks:33 shiori-net:34 driver: bridge35EOF3637# 2. Create the .env file38cat > .env << 'EOF'39# Shiori Configuration40# Default login: shiori / gopher41EOF4243# 3. Start the services44docker compose up -d4546# 4. View logs47docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/shiori-bookmark-manager/run | bashTroubleshooting
- Shiori login fails with default credentials: Check if initialization completed by examining shiori container logs with 'docker-compose logs shiori'
- Bookmark archiving fails or times out: Increase Docker memory allocation to at least 1GB as webpage archiving is memory-intensive
- nginx returns 502 Bad Gateway: Verify shiori container is running and accessible on port 8080 within the shiori-net network
- Bookmarks lose archived content after restart: Ensure shiori_data volume is properly mounted and has sufficient disk space for archives
- Browser extension cannot connect to server: Configure nginx.conf to properly proxy API endpoints and WebSocket connections to Shiori backend
- Search functionality returns incomplete results: Rebuild Shiori's search index using the CLI command 'shiori update' within the container
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
shioringinx
Tags
#shiori#bookmarks#archiving#simple#self-hosted
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download