Skip to content

Commit fce76e2

Browse files
update docker and documentation
1 parent 04b07ca commit fce76e2

11 files changed

+435
-29
lines changed

assets/XitasoLogo.svg

Lines changed: 32 additions & 0 deletions
Loading

assets/XitasoLogoBlack.svg

Lines changed: 32 additions & 0 deletions
Loading

assets/android-chrome-192x192.png

7.81 KB
Loading

compose.dev.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
networks:
2+
mnestix-network:
3+
driver: bridge
4+
name: mnestix-network
5+
6+
services:
7+
mnestix-proxy:
8+
container_name: mnestix-proxy
9+
image: mnestix-proxy:dev
10+
build:
11+
dockerfile: Dockerfile
12+
ports:
13+
- '5065:5065'
14+
15+
mnestix-api:
16+
ports:
17+
- '5064:5064'
18+
19+
aas-environment:
20+
ports:
21+
- '8081:8081'
22+
23+
mongodb:
24+
ports:
25+
- '27017:27017'
26+
27+
aas-discovery:
28+
ports:
29+
- '8082:8081'
30+
31+
aas-registry:
32+
ports:
33+
- '8083:8080'
34+
35+
submodel-registry:
36+
ports:
37+
- '8084:8080'

compose.yml

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
services:
77
mnestix-proxy:
88
container_name: mnestix-proxy
9-
image: mnestix-proxy:0.1.0
10-
build:
11-
dockerfile: Dockerfile
9+
image: mnestix/mnestix-proxy:0.1.0
1210
ports:
1311
- '5065:5065'
1412
environment:
@@ -37,11 +35,9 @@ services:
3735
- mnestix-network
3836

3937
mnestix-api:
40-
image: mnestix/mnestix-api:1.3.2
38+
image: mnestix/mnestix-api:1.3.4
4139
container_name: mnestix-api
4240
profiles: ['', 'backend', 'tests']
43-
ports:
44-
- '5064:5064'
4541
environment:
4642
ServerUrls ServerUrls: 'http://mnestix-proxy:5065/repo/'
4743
# API key authorization
@@ -78,7 +74,7 @@ services:
7874
- mnestix-network
7975

8076
mongodb:
81-
image: mongo:5
77+
image: mongo:8
8278
container_name: mongodb
8379
profiles: ['', 'basyx', 'tests']
8480
environment:
@@ -99,13 +95,11 @@ services:
9995
- mnestix-network
10096

10197
aas-environment:
102-
image: eclipsebasyx/aas-environment:2.0.0-milestone-05
98+
image: eclipsebasyx/aas-environment:2.0.0-milestone-06
10399
container_name: aas-environment
104100
profiles: ['', 'basyx', 'tests']
105101
depends_on:
106102
- mongodb
107-
ports:
108-
- '8081:8081'
109103
environment:
110104
# MongoDb configuration for Basyx Repository
111105
BASYX__BACKEND: MongoDB
@@ -133,7 +127,7 @@ services:
133127
- mnestix-network
134128

135129
aas-discovery:
136-
image: eclipsebasyx/aas-discovery:2.0.0-milestone-05
130+
image: eclipsebasyx/aas-discovery:2.0.0-milestone-06
137131
container_name: aas-discovery
138132
profiles: ['', 'basyx', 'tests']
139133
depends_on:
@@ -161,11 +155,9 @@ services:
161155
- mnestix-network
162156

163157
aas-registry:
164-
image: eclipsebasyx/aas-registry-log-mongodb:2.0.0-milestone-05
158+
image: eclipsebasyx/aas-registry-log-mongodb:2.0.0-milestone-06
165159
container_name: aas-registry
166160
profiles: ['', 'basyx']
167-
ports:
168-
- '8083:8080'
169161
depends_on:
170162
- mongodb
171163
environment:
@@ -181,11 +173,9 @@ services:
181173
- mnestix-network
182174

183175
submodel-registry:
184-
image: eclipsebasyx/submodel-registry-log-mongodb:2.0.0-milestone-05
176+
image: eclipsebasyx/submodel-registry-log-mongodb:2.0.0-milestone-06
185177
container_name: submodel-registry
186178
profiles: ['', 'basyx']
187-
ports:
188-
- '8084:8080'
189179
depends_on:
190180
- mongodb
191181
environment:

wiki/Docker-Compose.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Docker Compose Setup for mnestix-proxy
2+
3+
This guide explains how to use Docker Compose to run the full Mnestix Proxy stack, including the proxy, API, AAS environment, discovery, registry, and MongoDB.
4+
5+
---
6+
7+
## Compose Files
8+
9+
- **compose.yml**: For production or standard usage. Uses pre-built images.
10+
- **compose.dev.yml**: For development. Builds the `mnestix-proxy` image from your local source.
11+
12+
---
13+
14+
## Prerequisites
15+
16+
- [Docker](https://docs.docker.com/get-docker/) installed
17+
- [Docker Compose](https://docs.docker.com/compose/install/) (or use `docker compose` command with Docker Desktop)
18+
19+
---
20+
21+
## Usage
22+
23+
### 1. Standard Setup
24+
25+
From the project root, run:
26+
27+
```sh
28+
docker compose up
29+
```
30+
31+
This will start all services using pre-built images.
32+
33+
### 2. Development Setup
34+
35+
To build and run the proxy from your local source (using `compose.dev.yml`):
36+
37+
```sh
38+
docker compose -f compose.yml -f compose.dev.yml up --build
39+
```
40+
41+
This will build the `mnestix-proxy` image from your local Dockerfile and start all services. The development compose file also exposes all service ports for easier debugging.
42+
43+
---
44+
45+
## Services Overview
46+
47+
- **mnestix-proxy**: Main reverse proxy gateway (`5065:5065`)
48+
- **mnestix-api**: Backend API service (`5064:5064`)
49+
- **mongodb**: MongoDB database for AAS and discovery services (`27017:27017`)
50+
- **aas-environment**: Eclipse BaSyx AAS environment (repository) (`8081:8081`)
51+
- **aas-discovery**: Eclipse BaSyx AAS discovery service (`8082:8081`)
52+
- **aas-registry**: Eclipse BaSyx AAS registry (`8083:8080`)
53+
- **submodel-registry**: Eclipse BaSyx submodel registry (`8084:8080`)
54+
55+
All services are connected via the `mnestix-network` Docker network.
56+
57+
---
58+
59+
## Accessing Services
60+
61+
- **Proxy**: [http://localhost:5065](http://localhost:5065)
62+
- **API**: [http://localhost:5064](http://localhost:5064)
63+
- **AAS Environment**: [http://localhost:8081](http://localhost:8081)
64+
- **AAS Discovery**: [http://localhost:8082](http://localhost:8082)
65+
- **AAS Registry**: [http://localhost:8083](http://localhost:8083)
66+
- **Submodel Registry**: [http://localhost:8084](http://localhost:8084)
67+
- **MongoDB**: [localhost:27017](http://localhost:27017)
68+
69+
---
70+
71+
## Environment Variables
72+
73+
You can override default settings using environment variables, e.g.:
74+
- `MNESTIX_BACKEND_API_KEY`: API key for secured endpoints
75+
76+
See `compose.yml` and `compose.dev.yml` for all configurable variables.
77+
78+
---
79+
80+
## Stopping the Stack
81+
82+
To stop and remove all containers:
83+
84+
```sh
85+
docker compose down
86+
```
87+
88+
---
89+
90+
## Troubleshooting
91+
92+
- View logs: `docker compose logs`
93+
- Check health status: Services use health checks to ensure readiness.
94+
- Make sure required ports are available and not blocked.
95+
96+
---
97+
98+
## Customization
99+
100+
- Edit `compose.yml` or `compose.dev.yml` to change ports, images, or environment variables.
101+
- Update `mnestix-proxy/appsettings.json` for proxy configuration.
102+
103+
---
104+
105+
## References
106+
107+
- [compose.yml](../compose.yml)
108+
- [compose.dev.yml](../compose.dev.yml)
109+
- [mnestix-proxy/appsettings.json](../mnestix-proxy/appsettings.json)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Getting Started with Developing mnestix-proxy
2+
3+
## Prerequisites
4+
5+
Before you start developing with **mnestix-proxy**, ensure you have the following installed:
6+
7+
- **.NET 8 SDK** (required for building and running the project)
8+
- **Git** (for version control)
9+
- **Visual Studio Code** or **JetBrains Rider** (recommended IDEs)
10+
- **Docker** (optional, for containerized development and testing)
11+
12+
## Project Structure
13+
14+
The main source code is located in the `mnestix-proxy` folder. Key directories and files include:
15+
16+
- `Program.cs` — Application entry point
17+
- `Authentication/` — Authentication logic and middleware
18+
- `Configuration/` — Configuration options and classes
19+
- `Exceptions/` — Custom exception types
20+
- `Middleware/` — Custom ASP.NET Core middleware
21+
- `Services/` — Service implementations and interfaces
22+
- `appsettings.json` / `appsettings.Development.json` — Configuration files
23+
- `.github/workflows/` — CI/CD workflows
24+
25+
## Setup Instructions
26+
27+
1. **Clone the repository:**
28+
```sh
29+
git clone https://github.com/eclipse-mnestix/mnestix-proxy.git
30+
cd mnestix-proxy/mnestix-proxy
31+
```
32+
33+
2. **Install dependencies:**
34+
- Make sure you have the [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) installed.
35+
36+
3. **Configure environment variables:**
37+
- Update `appsettings.Development.json` or `appsettings.json` as needed for your environment.
38+
39+
4. **Run the development server:**
40+
```sh
41+
dotnet run
42+
```
43+
44+
5. **Run tests:**
45+
```sh
46+
dotnet test
47+
```
48+
49+
## Docker Development (Optional)
50+
51+
- Build and run the project using Docker:
52+
```sh
53+
docker build -t mnestix-proxy .
54+
docker run -p 5000:5000 mnestix-proxy
55+
```
56+
- See `.dockerignore` and `docker-compose.yml` (if present) for details.
57+
58+
## Additional Notes
59+
60+
- Use `dotnet restore` if you encounter missing dependencies.
61+
- Pull the latest changes from the main branch before starting new work.
62+
63+
## Useful Links
64+
65+
- [.NET 8 SDK Download](https://dotnet.microsoft.com/download/dotnet/8.0)
66+
- [Visual Studio Code](https://code.visualstudio.com/)
67+
- [JetBrains Rider](https://www.jetbrains.com/rider/)
68+
- [Git Download](https://git-scm.com/)

wiki/Home.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,18 @@
1-
Init page for Mnestix Proxy
1+
<p align="right">
2+
<picture>
3+
<source srcset="https://raw.githubusercontent.com/eclipse-mnestix/mnestix-proxy/main/assets/XitasoLogo.svg" media="(prefers-color-scheme: dark)">
4+
<img src="https://raw.githubusercontent.com/eclipse-mnestix/mnestix-proxy/main/assets/XitasoLogoBlack.svg" width=20%>
5+
</picture>
6+
</p>
7+
<p align="center">
8+
<img src="https://raw.githubusercontent.com/eclipse-mnestix/mnestix-proxy/main/assets/android-chrome-192x192.png" alt="Mnestix Logo">
9+
</p>
10+
<h1 style="text-align: center">Mnestix</h1>
11+
12+
[![Made by XITASO](https://img.shields.io/badge/Made_by_XITASO-005962?style=flat-square)](https://xitaso.com/)
13+
[![MIT License](https://img.shields.io/badge/License-MIT-005962.svg?style=flat-square)](https://choosealicense.com/licenses/mit/)
14+
15+
### Welcome to the Mnestix Community!
16+
17+
**Mnestix Proxy** is an open-source gateway designed to securely and flexibly connect applications with Asset Administration Shell (AAS) data sources. Developed by XITASO, it enables routing of AAS API requests, to AAS repositories, discovery and registry services, supports use cases such as Digital Twins and Digital Product Passports (DPP).
18+

0 commit comments

Comments
 (0)