SubSpace was created from a personal need for privacy and control over YouTube subscriptions. It provides a self-hosted solution to manage, organize, and access your favorite channels and videos without relying on YouTube’s default subscription system.
With SubSpace, you can save channels or videos, categorize them using custom tags, and open them directly on YouTube when needed — all while keeping your preferences private.
To install Subspace, there are two different ways.
- Clone the repository on your local device
git clone https://github.com/SebMZI/SubSpace.git
cd SubSpace- Install the dependencies
npm install- Start the server
cd backend
npm run startIt will start the server on http://localhost:3000 (3000 by default)
- Start the client
cd frontend
npm run startCopy/Paste the docker compose file
services:
frontend:
image: mziseb/subspace-frontend:latest
ports:
- "5173:5173"
environment:
VITE_API_URL: ${API_URL}
depends_on:
- backend
backend:
image: mziseb/subspace-backend:latest
ports:
- "3000:3000"
environment:
PORT: 3000
DB_PG_USERNAME: ${POSTGRES_USER}
DB_PG_PASSWORD: ${POSTGRES_PASSWORD}
DB_PG_DATABASE: ${POSTGRES_DB}
DB_PG_HOST: db
PWD_SALT: ${PWD_SALT}
JWT_SECRET: ${JWT_SECRET}
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN}
depends_on:
db:
condition: service_healthy
db:
image: postgres:17
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d subspace"]
interval: 5s
timeout: 5s
retries: 5
volumes:
postgres_data:- Chrome Extension
My sincere thanks to Mylano for his generous help in designing the frontend.
