Lumina is a simple and minimal Discord bot that helps you organize your life.
2-minute rule: If an action will take less than two minutes, it should be done at the moment it's defiend; otherwise, add it to Lumina.
Lumina is available both as a user app and a server bot. Install Lumina by clicking here.
Since Lumina is a user app, you can use it in any servers, including DMs.
Every single Lumina response can only be seen by you, reminders are sent through DMs.
Right click on a message or type any texts to set a reminder. Lumina will remind you at the specified time.
/reminder set/reminder list/reminder remove
Right click on any Discord user's avatar to set a birthday for them. Lumina will remind you when it's their birthday.
/birthday set/birthday list/birthday remove
Lumina can help you keep track of your tasks, right click on any Discord message to add it to your to-do list
/todo add/todo list/todo remove/todo done
Whether you want to make any bug reports, feature requests, or contribute to translations, simply open an issue or pull request in this repository.
If GitHub is not your type, you can find me on Discord, my username is @seria_ati.
Lumina can be self-hosted using several methods. All methods require a Discord bot token, which you can obtain from the Discord Developer Portal.
- A Discord bot token
-
Pull the latest image:
docker pull ghcr.io/seriaati/lumina:latest
-
Run the container:
docker run -d \ --name lumina \ -e DISCORD_TOKEN=YourDiscordBotToken \ -v lumina-data:/app/data \ -v lumina-logs:/app/logs \ --restart unless-stopped \ ghcr.io/seriaati/lumina:latest
Note: The
-vflags create Docker volumes to persist your database and logs across container restarts.
-
Create a
docker-compose.ymlfile:services: lumina: image: ghcr.io/seriaati/lumina:latest container_name: lumina restart: unless-stopped environment: - DISCORD_TOKEN=${DISCORD_TOKEN} volumes: - ./data:/app/data - ./logs:/app/logs healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 start_period: 5s
-
Create a
.envfile in the same directory:DISCORD_TOKEN=YourDiscordBotToken
-
Start the service:
docker compose up -d
-
View logs:
docker compose logs -f lumina
-
Stop the service:
docker compose down
-
curl -sSf https://astral.sh/uv/install.sh | sh npm install -g pm2 -
Clone the repository:
git clone https://github.com/seriaati/lumina.git cd lumina -
Create a
.envfile:DISCORD_TOKEN=YourDiscordBotToken
-
Install dependencies:
uv sync --frozen
-
Start with PM2:
pm2 start pm2.json
-
Install uv
-
Clone the repository:
git clone https://github.com/seriaati/lumina.git cd lumina -
Create a
.envfile:DISCORD_TOKEN=YourDiscordBotToken
-
Run the bot:
uv run run.py
This will automatically create a virtual environment and install dependencies on first run.
| Variable | Required | Default | Description |
|---|---|---|---|
DISCORD_TOKEN |
Yes | - | Your Discord bot token |
DB_PATH |
No | lumina.db |
Path to SQLite database file (Docker: /app/data/lumina.db) |
- Database: Lumina uses SQLite to store reminders, birthdays, todos, and notes
- Docker:
/app/data/lumina.db - Manual/PM2:
lumina.dbin the project root
- Docker:
- Logs: Application logs are stored in the
logs/directory- Docker:
/app/logs/lumina.log - Manual/PM2:
logs/lumina.log
- Docker:
