Skip to content

Getting Started with kometa

This guide will walk you through the process of setting up kometa on your system. We’ll cover both Docker and manual installation methods.

Before you begin, ensure you have the following:

  • A ComicVine account and API key
  • PostgreSQL database (version 12 or higher)
  • Node.js 18+ (for manual installation)
  • Docker and Docker Compose (for containerized setup)
  1. Create an account on ComicVine
  2. Visit the API page
  3. Generate your API key
  4. Keep this key secure - you’ll need it for kometa configuration

Create a .env file in your project root with the following variables:

# Required
COMIC_VINE_API_KEY=your_comicvine_api_key
DATABASE_URL=your_database_url
JWT_SECRET=your_jwt_secret
NEXT_PUBLIC_APP_URL=your_app_url
# Optional - For Push Notifications
NEXT_PUBLIC_VAPID_PUBLIC_KEY=your_vapid_public_key
VAPID_PRIVATE_KEY=your_vapid_private_key
VAPID_EMAIL=your_vapid_email

Generate a secure JWT secret using:

Terminal window
openssl rand -hex 32

If you want to enable push notifications:

  1. Install web-push: npm install -g web-push
  2. Generate keys: web-push generate-vapid-keys
  3. Add the generated keys to your .env file
  1. Clone the repository:
Terminal window
git clone https://github.com/daviddhdev/kometa.git
cd kometa
  1. Create your .env file as described above

  2. Build and start the containers:

Terminal window
docker-compose build
docker-compose up -d

The application will be available at http://localhost:3000 by default.

  1. Clone the repository:
Terminal window
git clone https://github.com/daviddhdev/kometa.git
cd kometa
  1. Install dependencies:
Terminal window
npm install
  1. Create your .env file as described above

  2. Start the development server:

Terminal window
npm run dev
  1. Access the application at your configured URL
  2. Create an admin account
  3. Configure your comic library location
  4. Start importing your comics!

If you encounter any issues during setup:

  1. Check the application logs
  2. Verify all environment variables are correctly set
  3. Ensure your database is accessible

Need help? Check out our: