A modern application for EVE Online killmail tracking and analysis, built with Nuxt 3, MongoDB, Redis, and BullMQ.
- Frontend & Backend: Nuxt 3 (Vue 3 & Nitro)
- UI Components: Nuxt/UI
- Database: MongoDB (via Mongoose)
- Caching: Redis (via ioredis)
- Job Processing: BullMQ
- Package Manager: Bun
- Search Engine: Meilisearch
- Containerization: Docker
- Orchestration: Kubernetes
- Bun (required)
- MongoDB
- Redis
- Meilisearch
- Docker & Docker Compose (for containerized deployment)
- Kubernetes (for k8s deployment)
Clone the repository and install dependencies:
# Clone the repository
git clone https://github.com/eve-kill/Thessia.git
cd Thessia
# Install dependencies with Bun
bun install
Create a .env
file in the project root with the following variables:
# Database Configuration
MONGO_URI=mongodb://localhost:27017/thessia
REDIS_URI=localhost
REDIS_PORT=6379
REDIS_DB=0
MEILISEARCH_URI=http://localhost:7700
# EVE Online API
ESI_URL=https://esi.evetech.net/
ESI_RATE_LIMIT=25
EVE_CLIENT_ID=your-client-id
EVE_CLIENT_SECRET=your-client-secret
EVE_CLIENT_REDIRECT=http://localhost:3000/auth/callback
### Development
EVE_CLIENT_ID_DEV=your-client-id-dev
EVE_CLIENT_SECRET_DEV=your-client-secret-dev
EVE_CLIENT_REDIRECT_DEV=http://localhost:3000/auth/callback
# RedisQ
REDISQ_ID=your-redisq-id
# Discord webhooks
BACKEND_DISCORD_URL=your-backend-discord-url
Start the development server on http://localhost:3000
:
bun run dev
For debugging with inspector:
bun run debug
Build the application for production:
bun run build
Preview the production build locally:
bun run preview
The application can be easily deployed using Docker Compose:
# Start all services
docker compose up -d
# View logs
docker compose logs -f
# Stop all services
docker compose down
For production environments, you can deploy Thessia using Kubernetes:
# Apply the Kubernetes configuration
kubectl apply -k k8s/
# Check deployment status
kubectl get pods -n eve-kill
This project uses GitHub Actions for continuous integration and delivery:
- Automated builds on push to the main branch
- Container image publishing to GitHub Container Registry
- Vulnerability scanning with Trivy
Thessia supports multiple languages through Transifex:
- Contribute translations: Transifex Project
- Localization files are stored in
i18n/locales/
We use Dependabot to maintain dependency security:
- Weekly security updates for npm packages
- Weekly updates for GitHub Actions
- Automated pull requests for updates
This project is licensed under the MIT License - see the LICENSE file for details.