Step-by-step guide to get List.am Bot running locally in 5 minutes.
- Docker & Docker Compose installed
- Telegram Bot Token from @BotFather
# Clone repository
git clone https://github.com/zombiQWERTY/list_am_bot.git
cd listambot
# Create environment file
cp env.example .envOpen .env and set your bot token:
BOT_TOKEN=your_telegram_bot_token_hereRequired variables:
BOT_TOKEN— Your Telegram bot tokenPOSTGRES_PASSWORD— Database password (already set in example)
Optional but recommended:
BOT_INCIDENTS_USER_ID— Your Telegram user ID for error notifications
make upThis will:
- Build Docker image
- Start PostgreSQL database
- Start bot application
Wait ~30 seconds for services to initialize.
If this is your first time running the project:
# Access container
docker exec -it listambot.core bash
# Create database schemas
psql $POSTGRES_BASE_URL -c "CREATE SCHEMA IF NOT EXISTS core;"
# Run migrations
/tmp/typeorm-migrate.sh
# Exit container
exitCheck logs to ensure bot is running:
make logsYou should see:
✅ Bot started successfully
🔄 Scheduler initialized
- Open Telegram
- Find your bot (search by username)
- Send
/start - Try adding a subscription!
Your bot is now monitoring list.am for new listings!
- Add subscription: Use
/addcommand in Telegram (max 10 per user) - View logs:
make logs - Stop bot:
make down - Restart bot:
make restart
- Each user can create up to 10 subscriptions (text + URL combined)
- When the limit is reached, delete old subscriptions to add new ones
- If you block the bot, all your subscriptions are automatically deleted
- This keeps the database clean and respects your privacy
- Unblocking the bot allows you to start fresh with new subscriptions
make up # Start everything
make down # Stop everything
make logs # View logs
make rebuild-one # Rebuild bot after code changes
make rebuild-all # Rebuild everything
make shell # Access bot container- Check logs:
make logs - Verify
BOT_TOKENin.envis correct - Ensure bot is running:
docker ps
# Recreate database
make down
docker volume rm listambot_postgres_data
make up
# Then repeat step 4 (create schema)Check actual container names:
docker psUse the correct name in commands.
- Check full README
- View Troubleshooting section
- Open an issue
Happy monitoring! 🎯