mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-18 22:25:09 +00:00
185 lines
4.6 KiB
Markdown
185 lines
4.6 KiB
Markdown
# Local Testing Guide for Pre-built Images
|
|
|
|
This guide explains how to run the Academy LMS stack locally using images from GitHub Container Registry.
|
|
|
|
## Prerequisites
|
|
|
|
1. Docker and Docker Compose installed
|
|
2. Access to the GitHub Container Registry (for private images)
|
|
|
|
## Quick Start
|
|
|
|
### 1. Clone this repository
|
|
|
|
```bash
|
|
git clone https://github.com/ExarLabs/academy_docker.git
|
|
cd academy_docker
|
|
```
|
|
|
|
### 2. Set up environment variables
|
|
|
|
```bash
|
|
# Copy the example environment file
|
|
cp .env.example .env
|
|
|
|
# Edit the .env file with your actual values
|
|
nano .env
|
|
```
|
|
|
|
**Required variables to update:**
|
|
- `MARIADB_ROOT_PASSWORD` - Set a secure password
|
|
- `OPENAI_API_KEY` - Your OpenAI API key
|
|
- `ANTHROPIC_API_KEY` - Your Anthropic API key (optional)
|
|
- `LANGCHAIN_DB_PASSWORD` - Password for LangChain database
|
|
|
|
### 3. Login to GitHub Container Registry (if images are private)
|
|
|
|
```bash
|
|
# Using GitHub Personal Access Token
|
|
echo $GITHUB_PAT | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin
|
|
|
|
# Or using GitHub CLI
|
|
gh auth token | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin
|
|
```
|
|
|
|
### 4. Pull and run the services
|
|
|
|
```bash
|
|
# Pull the latest images
|
|
docker compose pull
|
|
|
|
# Start all services
|
|
docker compose up -d
|
|
|
|
# Check status
|
|
docker compose ps
|
|
|
|
# View logs
|
|
docker compose logs -f
|
|
```
|
|
|
|
### 5. Create your first site (after services are running)
|
|
|
|
```bash
|
|
# Create a new site
|
|
docker compose exec backend bench new-site academy.local \
|
|
--admin-password admin \
|
|
--db-root-password $MARIADB_ROOT_PASSWORD
|
|
|
|
# Install the LMS app
|
|
docker compose exec backend bench --site academy.local install-app lms
|
|
|
|
# Install the AI Tutor Chat app
|
|
docker compose exec backend bench --site academy.local install-app ai_tutor_chat
|
|
|
|
# Set the site as default
|
|
docker compose exec backend bench use academy.local
|
|
```
|
|
|
|
### 6. Access the application
|
|
|
|
1. Add to your hosts file:
|
|
- Windows: `C:\Windows\System32\drivers\etc\hosts`
|
|
- Linux/Mac: `/etc/hosts`
|
|
|
|
Add this line:
|
|
```
|
|
127.0.0.1 academy.local
|
|
```
|
|
|
|
2. Open in browser: http://academy.local
|
|
|
|
## What's included?
|
|
|
|
The `compose.yaml` file includes:
|
|
- **Frappe/ERPNext** with Academy LMS and AI Tutor apps (single image: `ghcr.io/exarlabs/ignis-academy-lms`)
|
|
- **LangChain service** for AI functionality (image: `ghcr.io/exarlabs/academy-langchain`)
|
|
- **MariaDB** for Frappe database
|
|
- **PostgreSQL** for LangChain database
|
|
- **Redis** for caching and queues
|
|
- **Nginx** reverse proxy
|
|
|
|
## Troubleshooting
|
|
|
|
### "manifest unknown" error
|
|
|
|
This means the image hasn't been built yet. Either:
|
|
1. Wait for GitHub Actions to build and push the images
|
|
2. Build locally (see development guide)
|
|
|
|
### Environment variable warnings
|
|
|
|
Ensure your `.env` file exists and contains all required variables. Use `.env.example` as reference.
|
|
|
|
### Cannot access the site / 404 errors on assets
|
|
|
|
If you see 404 errors for CSS/JS files:
|
|
|
|
1. **Rebuild assets**:
|
|
```bash
|
|
docker compose exec backend bench --site academy.local build
|
|
```
|
|
|
|
2. **Clear cache**:
|
|
```bash
|
|
docker compose exec backend bench --site academy.local clear-cache
|
|
```
|
|
|
|
3. **Set current site**:
|
|
```bash
|
|
docker compose exec backend sh -c "echo 'academy.local' > /home/frappe/frappe-bench/sites/currentsite.txt"
|
|
```
|
|
|
|
4. **Restart services**:
|
|
```bash
|
|
docker compose restart backend frontend nginx-proxy
|
|
```
|
|
|
|
5. **Hard refresh your browser** (Ctrl+F5 or Cmd+Shift+R)
|
|
|
|
### Cannot access the site
|
|
|
|
1. Check if all services are running: `docker compose ps`
|
|
2. Ensure you've added the hostname to your hosts file
|
|
3. Check nginx logs: `docker compose logs nginx-proxy`
|
|
|
|
### Database connection errors
|
|
|
|
1. Ensure MariaDB is fully started before creating sites
|
|
2. Check the password in `.env` matches what you use in commands
|
|
|
|
### LangChain service errors (student_ai_profiles table missing)
|
|
|
|
If you get errors about missing database tables in the LangChain service:
|
|
|
|
```bash
|
|
# Create the required tables
|
|
docker compose exec langchain-service sh -c "cd /app && PYTHONPATH=/app python app/create_tables.py"
|
|
```
|
|
|
|
This will create all necessary tables including:
|
|
- `student_ai_profiles`
|
|
- `chat_conversations`
|
|
- `chat_messages`
|
|
|
|
### Login issues
|
|
|
|
Default credentials after site creation:
|
|
- Username: `Administrator`
|
|
- Password: The password you set with `--admin-password` flag
|
|
|
|
## Stopping the services
|
|
|
|
```bash
|
|
# Stop all services
|
|
docker compose down
|
|
|
|
# Stop and remove all data (careful!)
|
|
docker compose down -v
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
- For production deployment, see [DEPLOYMENT.md](DEPLOYMENT.md)
|
|
- For development setup, see [README.md](README.md)
|
|
- For environment configuration, see [docs/environment-secrets-explained.md](docs/environment-secrets-explained.md)
|