Get upcoming schedules from Trakt. Integrate it with your Calendar of choice!
To selfhost this application on your machine, follow these steps:
-
Node.js and npm must be installed on your system. If not, download and install them from the official website: Node.js Download Page or just use bun 👀
-
MongoDB should be installed and running. You can download it from the official website: MongoDB Download Page.
-
Redis should be installed and running if your application uses it for caching or other purposes. You can download it from the official website: Redis Download Page.
- Clone the repository to your local machine:
git clone https://github.com/radityaharya/showtime
- Navigate to the project directory:
cd <project_directory>
- Install dependencies:
bun install
npm install
pnpm install
- Create a
.env.local
file in the root of the project and add the necessary environment variables. Refer to the provided table in the README for a list of required variables.
- Start MongoDB:
# Start MongoDB (if not running as a service)
mongod
- Start Redis (if applicable):
# Start Redis (if not running as a service)
redis-server
- Start the Next.js application:
bun run dev
npm run dev
-
The application will be running locally at
http://localhost:3000
. Open a web browser and navigate to this URL to access the application. -
to build the application, run:
bun run build
npm run build
- Make sure to use the application is accessible to the internet as it is needed for calendar providers to get the Calendar data. You can use services such as ngrok, Cloudflare Tunnel to expose your local server to the internet.
To run this project, you will need to add the following environment variables to your .env file
Environment Variable | Description | Example |
---|---|---|
HOST | The host where the application is deployed. | 0.0.0.0 |
PORT | The port on which the application will listen for incoming requests. | 3000 |
TRAKT_CLIENT_ID | The client ID used for authenticating with the Trakt API. | |
TRAKT_CLIENT_SECRET | The client secret used for authenticating with the Trakt API. | |
MONGO_URL | The URL of the MongoDB instance or database used by the application. | mongodb://your-mongo-url:27017/your-db-name |
IMGPROXY_KEY | A key required for authenticating with the Imgproxy service. | |
IMGPROXY_SALT | A salt used for generating secure image URLs with Imgproxy. | |
IMGPROXY_URL | The URL of the Imgproxy service, if used for image processing and manipulation. | |
TMDB_API_KEY | The API key used for authenticating with The Movie Database (TMDb) API. | |
TMDB_ACCESS_TOKEN | An access token required for authenticating with TMDb services. | |
REDIS_URL | The URL of the Redis server if it's used for caching or other purposes. | redis://your-redis-url:6379/0 |
NEXTAUTH_URL | The URL at which the NextAuth.js authentication service is hosted. | http://localhost:3000 |
NEXTAUTH_SECRET | A secret used by NextAuth.js for cryptographic operations. | random-secret |
NEXTAUTH_DB | The database connection URL or configuration used by NextAuth.js for user authentication. | |
SENTRY_AUTH_TOKEN | An authentication token used for logging errors and exceptions with Sentry. | |
NEXT_PUBLIC_SENTRY_DSN | The Data Source Name (DSN) used for logging errors and exceptions with Sentry. |
This project is not affiliated with Trakt. For the best experience and access to advanced features, it is recommended to subscribe to Trakt's VIP plan, which includes iCal integration.
Please note that this project was created for personal enjoyment and experimentation. It is not an official Trakt product and is not endorsed or supported by Trakt. Use it at your own discretion.
This project uses the Trakt API to retrieve upcoming schedules. It also uses the The Movie Database (TMDb) API to retrieve movie and TV show information.
For any issues or concerns, please open an issue on GitHub or contact me on contact@radityaharya.com
Branding Attributions: