Movie Tracker is a service for searching and tracking movies being watched.
The main goal in the creation of this project was the realization of personal lists with movies and a convenient system of tracking the current progress for series.
The Movie Database API acts as a database of movies and actors.
- Turborepo
- TypeScript
- Vue.js
- Nuxt
- TanStack Query
- Node.js
- NestJS
- Redis
- PostgreSQL
- Prisma
- Docker
- Clone repository
git clone https://github.com/dapzer/movie-tracker.git - Create a
.envfile and transfer the data from.env.developmentinto it - Run needed services (PostgreSQL, Adminer, Redis)
docker compose -f docker-compose.dev.yml up -d - Install dependencies
pnpm install - Run project
pnpm run dev
- Clone repository
git clone https://github.com/dapzer/movie-tracker.git - Init swarm
docker swarm init - Set labels for node
docker node update --label-add databases=true <node_id>,docker node update --label-add registry=true <node_id>anddocker node update --label-add reverseproxy=true <node_id> - Create shared networks
docker networkcreate --driver overlay --attachable caddy-public,docker network create --driver overlay --attachable movie-tracker-metrics,docker network create --driver overlay --attachable movie-tracker-shared - Create
.emvfile and transfer the data from.env.developmentinto itcp .env.development .env - Deploy stack
docker stack deploy -c compose.stack.yaml --with-registry-auth movie-tracker
function dsu() {
docker service update --with-registry-auth --force --image registry.movie-tracker.app/movie-tracker/$1 movie-tracker_$1
}
function dsl() {
docker service logs -f --since $1m movie-tracker_$2
}
function deploy() {
docker stack deploy -c compose.stack.yaml --with-registry-auth $1
}After successfully building the project in GitHub Actions, you need to follow these steps to update the project on the server:
- Run
dsu <service_name>