Skip to content

Get upcoming schedules from Trakt. Integrate it with your Calendar of choice!

Notifications You must be signed in to change notification settings

radityaharya/showtime

Repository files navigation

Showtime

Get upcoming schedules from Trakt. Integrate it with your Calendar of choice!

Self Hosting

Deploy on Railway

To selfhost this application on your machine, follow these steps:

Prerequisites

  1. 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 👀

  2. MongoDB should be installed and running. You can download it from the official website: MongoDB Download Page.

  3. 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.

Setup

  1. Clone the repository to your local machine:
git clone https://github.com/radityaharya/showtime
  1. Navigate to the project directory:
cd <project_directory>
  1. Install dependencies:
bun install
npm install
pnpm install
  1. 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 the Application

  1. Start MongoDB:
# Start MongoDB (if not running as a service)
mongod
  1. Start Redis (if applicable):
# Start Redis (if not running as a service)
redis-server
  1. Start the Next.js application:
bun run dev
npm run dev
  1. The application will be running locally at http:https://localhost:3000. Open a web browser and navigate to this URL to access the application.

  2. to build the application, run:

bun run build
npm run build

Additional Notes

  • 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.

Environment Variables

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:https://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:https://your-redis-url:6379/0
NEXTAUTH_URL The URL at which the NextAuth.js authentication service is hosted. http:https://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.

Disclaimer

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 [email protected]

Branding Attributions:

TMDb Logo Trakt Logo