- Local
- Docker
- Railway
- Render
Use the included setup scripts for a guided local setup. The scripts handle everything from WindowsWhat the scripts do:
.env creation to launching the bot.Linux / macOS- Create
.envfrom.env.sampleon first run — open it and fill in your real Discord IDs and provider keys before continuing. - Validate
BOT_TOKEN,CHANNEL_ID,AI_PROVIDER, and the matching provider API key (e.g.,GOOGLE_API_KEYfor Gemini,OPENAI_API_KEYfor OpenAI). - Create a
.venvvirtual environment and install dependencies fromrequirements.txt. - Run
scripts/check_project.pyto verify syntax and config. - Launch the bot with
python main.py.
.env and just want to start the bot manually, run:The local setup scripts are for manual hosting only — do not use them for Docker or cloud platforms. On Docker, Railway, and Render, the platform owns the bootstrap process.
Persistence
Freesona uses a small set of files to store all runtime state. Keep these files on a persistent volume in any cloud environment:| File | Contents |
|---|---|
config.json | Prefix, channel IDs, autonomy settings, module enabled/disabled states |
persona.json | Active persona fields (core, background, beliefs, style, instructions) |
personas.json | Saved persona presets |
memory.db | Long-term user facts, keyed by guild_id + user_id |
warnings.db | Moderation warnings with per-guild hex IDs and timestamps |
anniversaries.db | User-claimed anniversary entries |
.chroma/ | ChromaDB vector store for knowledge base retrieval (optional) |
*_FILE_PATH environment variables at your /data/ mount to ensure they survive restarts and redeployments.