A tool to help manage Tidal music playlists and songs.
Note: This project is currently in early development.
- Backend: Python 3.11, FastAPI, SQLModel, Alembic
- Frontend: TypeScript, Vue.js 3, Pinia, Tailwind CSS
- Database: SQLite
- Infrastructure: Docker, Docker Compose
- Docker and Docker Compose installed on your machine.
-
Clone the repository:
git clone <repository-url> cd tidal-helper
-
Environment Setup: Create a
.envfile from the example template:cp .env.example .env
-
Start the Application: Run the following command to build and start the services:
docker-compose up --build
-
Access the Application:
- Frontend: http://localhost:22002
- Backend API Docs: http://localhost:22001/docs
cd backend
poetry install
poetry run uvicorn app.main:app --reloadcd frontend
npm install
npm run devThe project uses Alembic for database schema migrations.
If the alembic directory doesn't exist, initialize it:
cd backend
poetry run alembic init alembicAfter modifying your SQLModel models, generate a new migration:
cd backend
poetry run alembic revision --autogenerate -m "Description of changes"This will create a new migration file in backend/alembic/versions/.
To apply all pending migrations to the database:
cd backend
poetry run alembic upgrade headTo rollback the last migration:
cd backend
poetry run alembic downgrade -1To rollback to a specific revision:
cd backend
poetry run alembic downgrade <revision_id>To see the current migration version:
cd backend
poetry run alembic currentTo see migration history:
cd backend
poetry run alembic historyFor quick database initialization without migrations, you can use the init_db.py script:
cd backend
poetry run python init_db.pyNote: This creates all tables based on your SQLModel definitions but doesn't track migration history. For production use, prefer Alembic migrations.