- BTCPay Server integration - TeleBot Telegram bot - Review system - Admin area - Docker deployment configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.8 KiB
4.8 KiB
LittleShop Deployment Guide
Portainer Deployment to portainer-01 (10.0.0.51)
This guide covers deploying LittleShop to your Portainer infrastructure with Traefik routing.
Prerequisites
-
Portainer running on
portainer-01 (10.0.0.51)- Username:
sysadmin - Password:
Phenom12#.
- Username:
-
Traefik running on
portainer-03with:- External network named
traefik - Let's Encrypt SSL certificate resolver named
letsencrypt - Entry point named
websecure(port 443)
- External network named
-
DNS Configuration
littleshop.silverlabs.ukshould point to your Traefik instance
Deployment Steps
Step 1: Access Portainer
- Navigate to
http://10.0.0.51:9000(or your Portainer URL) - Login with
sysadmin/Phenom12#.
Step 2: Create Environment Variables
- Go to Stacks → Add stack
- Name:
littleshop - In the environment variables section, add:
JWT_SECRET_KEY=YourSuperSecretKeyThatIsAtLeast32CharactersLong! BTCPAY_SERVER_URL=https://your-btcpay-server.com BTCPAY_STORE_ID=your-store-id BTCPAY_API_KEY=your-api-key BTCPAY_WEBHOOK_SECRET=your-webhook-secret
Step 3: Deploy the Stack
- Copy the contents of
docker-compose.ymlinto the web editor - Click Deploy the stack
Step 4: Verify Deployment
- Check that the container is running in Containers view
- Visit
https://littleshop.silverlabs.ukto confirm the application is accessible
Configuration Details
Traefik Labels Configuration
The docker-compose includes these Traefik labels:
- Host Rule:
littleshop.silverlabs.uk - HTTPS: Enabled with Let's Encrypt
- Port: Internal port 8080
- Headers: Proper forwarding headers for ASP.NET Core
Persistent Storage
Three volumes are created:
littleshop_data: SQLite database and application datalittleshop_uploads: Product images and file uploadslittleshop_logs: Application log files
Security Configuration
- Application runs on internal port 8080
- HTTPS enforced through Traefik
- JWT secrets configurable via environment variables
- Forwarded headers properly configured for reverse proxy
Environment Variables
| Variable | Description | Required | Default |
|---|---|---|---|
JWT_SECRET_KEY |
Secret key for JWT token signing | Yes | Default provided |
BTCPAY_SERVER_URL |
BTCPay Server URL | No | Empty |
BTCPAY_STORE_ID |
BTCPay Store ID | No | Empty |
BTCPAY_API_KEY |
BTCPay API Key | No | Empty |
BTCPAY_WEBHOOK_SECRET |
BTCPay Webhook Secret | No | Empty |
Initial Setup
Default Admin Account
On first run, the application creates a default admin account:
- Username:
admin - Password:
admin - ⚠️ IMPORTANT: Change this password immediately after deployment!
Post-Deployment Steps
- Visit
https://littleshop.silverlabs.uk/Admin - Login with
admin/admin - Change the admin password
- Configure categories and products
- Set up BTCPay Server integration if needed
Troubleshooting
Container Won't Start
- Check environment variables are set correctly
- Verify Traefik network exists:
docker network ls - Check container logs in Portainer
SSL Certificate Issues
- Ensure DNS points to Traefik instance
- Check Traefik logs for Let's Encrypt errors
- Verify
letsencryptresolver is configured
Application Errors
- Check application logs in
/app/logs/volume - Verify database permissions in
/app/data/volume - Ensure file upload directory is writable
Database Issues
- Database is automatically created on first run
- Data persists in
littleshop_datavolume - Location:
/app/data/littleshop.db
Updating the Application
- In Portainer, go to Stacks → littleshop
- Click Editor
- Update the image tag or configuration as needed
- Click Update the stack
Backup and Restore
Backup
# Backup volumes
docker run --rm -v littleshop_littleshop_data:/data -v $(pwd):/backup alpine tar czf /backup/littleshop-data-backup.tar.gz -C /data .
docker run --rm -v littleshop_littleshop_uploads:/data -v $(pwd):/backup alpine tar czf /backup/littleshop-uploads-backup.tar.gz -C /data .
Restore
# Restore volumes
docker run --rm -v littleshop_littleshop_data:/data -v $(pwd):/backup alpine tar xzf /backup/littleshop-data-backup.tar.gz -C /data
docker run --rm -v littleshop_littleshop_uploads:/data -v $(pwd):/backup alpine tar xzf /backup/littleshop-uploads-backup.tar.gz -C /data
Support
For issues or questions:
- Check application logs in Portainer
- Verify Traefik configuration
- Ensure all environment variables are set correctly
- Check network connectivity between containers
Deployment Status: ✅ Ready for Production
Hostname: https://littleshop.silverlabs.uk
Admin Panel: https://littleshop.silverlabs.uk/Admin