prepare for oss release: docker compose

This commit is contained in:
ajvpot
2025-08-01 00:00:00 +00:00
parent f8584f8e1c
commit 47af653db6
5 changed files with 223 additions and 1 deletions
+72
View File
@@ -29,6 +29,15 @@ You can start editing the page by modifying `app/page.tsx`. The page auto-update
## Environment Variables
### ClickHouse Database Configuration
The application connects to ClickHouse using the following environment variables:
- `CLICKHOUSE_HOST` - ClickHouse server hostname (default: `localhost`)
- `CLICKHOUSE_PORT` - ClickHouse server port (default: `8123`)
- `CLICKHOUSE_USER` - ClickHouse username (default: `default`)
- `CLICKHOUSE_PASSWORD` - ClickHouse password (default: `password`)
### `NEXT_PUBLIC_API_URL`
This environment variable allows you to override the API base URL for frontend development purposes. When set, all API calls will be made to the specified URL instead of using relative URLs.
@@ -64,6 +73,69 @@ The middleware applies the following CORS headers to all `/api/*` routes:
- [MeshCore](https://github.com/your-org/meshcore) - mesh network backend
- [Meshtastic](https://meshtastic.org/) - open source mesh communication project
## Docker Deployment
The application includes Docker support for easy deployment. The Docker configuration is set up to connect to ClickHouse running on the Docker host.
### Prerequisites
- Docker and Docker Compose installed
- ClickHouse running on the Docker host (default port 8123)
- External Docker network `shared-network` must exist (see setup instructions below)
### External Network Setup
The application requires an external Docker network called `shared-network` to communicate with ClickHouse. You must create this network before running the application:
```bash
docker network create shared-network
```
**Note**: If the network already exists, this command will show an error but can be safely ignored.
### Running with Docker Compose
1. **Create the required external network (if not already created):**
```bash
docker network create shared-network
```
2. **Build and start the application:**
```bash
docker-compose up --build
```
3. **Access the application:**
Open [http://localhost:3001](http://localhost:3001) in your browser.
### Docker Configuration
The `docker-compose.yml` file is configured with:
- **Port mapping**: Container port 3000 → Host port 3001
- **ClickHouse connection**: Uses `clickhouse` hostname to connect to ClickHouse via the shared network
- **External network**: Requires `shared-network` to be created externally
- **Environment variables**: Pre-configured for typical ClickHouse setup
### Customizing ClickHouse Connection
You can customize the ClickHouse connection by modifying the environment variables in `docker-compose.yml`:
```yaml
environment:
- CLICKHOUSE_HOST=your-clickhouse-host
- CLICKHOUSE_PORT=8123
- CLICKHOUSE_USER=your-username
- CLICKHOUSE_PASSWORD=your-password
```
### Building with BuildKit
For faster builds with caching, enable BuildKit:
```bash
DOCKER_BUILDKIT=1 docker-compose up --build
```
## Deploy
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.