Skip to content

iamneur0/syncio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

329 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Syncio

Streamline your Stremio addon and user management across different groups

Discord Docker Stars GitHub Release

Syncio Addons Page

✨ What Syncio Does

Syncio is a comprehensive management system for Stremio addons and users, designed for organizations that need to manage multiple Stremio accounts efficiently. It provides:

  • 🏒 Group Management - Organize users into groups with custom colors and descriptions
  • πŸ”Œ Addon Management - Install, configure, update, and manage Stremio addons
  • πŸ‘₯ User Management - Add users, manage their Stremio accounts, and control access
  • πŸ”„ Smart Sync - Keep addons synchronized across all users' Stremio accounts
  • πŸ›‘οΈ Protected Addons - Mark critical addons as protected to prevent accidental removal
  • πŸ“Š Resource Filtering - Select specific resources (movies, series, etc.) from addons
  • 🎨 Modern UI - Beautiful, responsive interface with multiple themes
  • πŸ” Authentication - Secure user authentication and account management
  • πŸ“€ Import/Export - Backup and restore your entire configuration

πŸš€ Quick Start with Docker Compose

The easiest way to run Syncio is using Docker Compose. You can find the complete compose files at private and public.

πŸ“‹ Setup Instructions

# 1. Clone the repository
git clone https://github.com/iamneur0/syncio.git
cd syncio

# 2. Create .env file from template
cp env.example .env

# 3. Edit .env with your configuration
nano .env

# 4. Start all services
docker compose up -d

# 5. View logs (optional)
docker-compose logs -f

# 6. Stop services (when needed)
docker-compose down

The application will be available at http://localhost:3000.

βš™οΈ Environment Variables

Create a .env file in your project root with the following variables:

# Database Configuration
DATABASE_URL="file:./prisma/sqlite.db"  # For private instances
# DATABASE_URL="postgresql://user:pass@localhost:5432/syncio"  # For public instances

# Redis Configuration
REDIS_URL="redis://localhost:6379"

# Application Secrets (REQUIRED - Generate secure keys)
JWT_SECRET=your-jwt-secret-key-here
ENCRYPTION_KEY=your-encryption-key-here

# User/Group IDs for Docker (Optional - defaults to 1000:1000)
UID=1000
GID=1000

πŸ”‘ Generating Secure Keys

# Generate JWT secret (32+ characters)
openssl rand -base64 32

# Generate encryption key (32+ characters)
openssl rand -hex 16

πŸ“± Screenshots

Login Page

LoginPage

Group View

GroupView

User View

UserView

πŸ› οΈ Development

Prerequisites

  • Node.js 18+
  • Docker & Docker Compose
  • Git

Local Development

# 1. Clone and install dependencies
git clone https://github.com/iamneur0/syncio.git
cd syncio
npm install
cd client && npm install && cd ..

# 2. Set up environment
cp env.example .env
# Edit .env with your configuration

# 3. Start development servers
npm run dev  # Private instance
# or
npm run dev:public  # Public instance with auth

🐳 Docker Deployment

Public Instance (With Authentication)

# Uses PostgreSQL database
docker compose -f docker-compose.public.yml up -d

Private Instance (No Authentication)

# Uses SQLite database
docker compose -f docker-compose.private.yml up -d

πŸ”§ Configuration

Instance Types

Private Instance

  • No authentication required
  • Single-account access
  • SQLite database
  • Perfect for personal use

Public Instance

  • JWT authentication
  • Multi-user support
  • PostgreSQL database
  • Perfect for organizations

πŸ› Troubleshooting

Common Issues

Permission Issues:

# Check your UID/GID
id

# Update .env with correct values
echo "UID=$(id -u)" >> .env
echo "GID=$(id -g)" >> .env

# Fix ownership
sudo chown -R $(id -u):$(id -g) ./data

Database Issues:

# Reset database (WARNING: deletes all data)
docker-compose down
docker volume rm syncio_syncio_data
docker-compose up -d

Port Conflicts:

# Check what's using port 3000
lsof -i :3000

# Kill the process or change port in docker-compose.yml

Debug Logging

Enable debug logging for troubleshooting:

# Server-side debug logging
DEBUG=true

# Client-side debug logging
NEXT_PUBLIC_DEBUG=true

Debug logging includes:

  • πŸ“‘ API request/response details
  • πŸ”„ Sync status calculations
  • πŸ“¦ Addon import/export operations
  • πŸ‘€ User status changes
  • πŸ—„οΈ Database operations

🀝 Contributing

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ by neur0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages