Skip to content
iamneur0Public

About

No description, website, or topics provided.

Resources

Stars

58 stars

Watchers

3 watching

Forks

Latest commit

 

History

352 Commits

Folders and files

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
bun install
cd client && bun install && cd ..

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

# 3. Start development servers
bun run dev  # Private instance
# or
bun 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

Stars

58 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages