|
1 | 1 | # BEC Atlas |
2 | 2 |
|
| 3 | +BEC Atlas is a web-based management system for BEC (Beamline Experiment Control) deployments at scientific facilities. It provides centralized access control, deployment management, and real-time monitoring capabilities for beamline experiments. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- **Deployment Management**: Create and manage BEC deployments across multiple beamlines |
| 8 | +- **Access Control**: Role-based access control with user, group, and admin permissions |
| 9 | +- **Real-time Monitoring**: Live monitoring and control of beamline experiments |
| 10 | +- **Authentication**: JWT-based authentication with LDAP integration |
| 11 | +- **REST API**: Comprehensive API for programmatic access and integration |
| 12 | + |
3 | 13 | ## Prerequisites |
4 | | -* Install redis |
5 | | -* Install docker |
6 | | -* Python environment >= 3.10 |
7 | | -* tmux |
8 | | -* nginx (optional) |
9 | | - |
10 | | -## Installation |
11 | | -* `pip install -e './backend[dev]'` |
12 | | -* `docker run --name scylla -p 9042:9042 -p 9160:9160 -p 9180:9180 -d scylladb/scylla` |
13 | | -* Optional: `nginx -c $(pwd)/utils/nginx.conf` |
14 | | -* `bec-atlas start` to start the backend. This will start two instances of the fastapi server plus the redis server. |
15 | | - |
16 | | -Once the backend is running, you can access the API at `http://localhost/docs` through your browser. |
17 | | - |
18 | | -```{note} |
19 | | -The fastapi server will be running on port 8000 and 8001. The redis server will be running on port 6379. However, nginx will expose it directly to port 80. Therefore, you can access the API at `http://localhost/docs` through your browser. If you want to access the API directly, you can use `http://localhost:8000/docs` or `http://localhost:8001/docs`. |
20 | | -``` |
| 14 | + |
| 15 | +- Python >= 3.10 |
| 16 | +- Redis server |
| 17 | +- MongoDB |
| 18 | +- Docker |
| 19 | +- tmux |
| 20 | +- nginx (optional, for load balancing) |
| 21 | + |
| 22 | +## Quick Start |
| 23 | + |
| 24 | +1. **Install the package:** |
| 25 | + ```bash |
| 26 | + pip install -e './backend[dev]' |
| 27 | + ``` |
| 28 | + |
| 29 | +2. **Start required services:** |
| 30 | + ```bash |
| 31 | + # Start MongoDB (if using Docker) |
| 32 | + docker run --name mongodb -p 27017:27017 -d mongo:latest |
| 33 | + |
| 34 | + # Optional: Start nginx for load balancing |
| 35 | + nginx -c $(pwd)/utils/nginx.conf |
| 36 | + ``` |
| 37 | + |
| 38 | +3. **Start BEC Atlas:** |
| 39 | + ```bash |
| 40 | + bec-atlas start |
| 41 | + ``` |
| 42 | + This will start two instances of the FastAPI server plus the Redis server. |
| 43 | + |
| 44 | +4. **Access the application:** |
| 45 | + - Web interface: `http://localhost:4200` |
| 46 | + - API documentation: `http://localhost/docs` |
| 47 | + - Direct API access: `http://localhost:8000/docs` or `http://localhost:8001/docs` |
| 48 | + |
| 49 | +## Commands |
| 50 | + |
| 51 | +- `bec-atlas start` - Start all services in tmux session |
| 52 | +- `bec-atlas stop` - Stop all services |
| 53 | +- `bec-atlas restart` - Restart all services |
| 54 | +- `bec-atlas attach` - Attach to running tmux session |
| 55 | +- `bec-atlas-get-key` - Retrieve deployment environment files |
| 56 | + |
| 57 | +## Development |
| 58 | + |
| 59 | +The application consists of: |
| 60 | +- **Backend**: FastAPI application with MongoDB and Redis |
| 61 | +- **Frontend**: Angular web application |
| 62 | +- **Services**: Two FastAPI instances (ports 8000/8001) with Redis (port 6379) |
| 63 | + |
| 64 | +For development setup, see the individual README files in `backend/` and `frontend/` directories. |
21 | 65 |
|
0 commit comments