Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

245 integration environment for didcomm mediator server deployment e6 #264

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM rust:latest as builder

WORKDIR /app

COPY . .

# Build the server
RUN cargo build --release

# Use a minimal image for running the server
FROM ubuntu

RUN apt update && apt install -y libpq5 && rm -rf /var/lib/apt/lists/*
WORKDIR /app


# Copy the built binary
COPY --from=builder /app/target/release/didcomm-mediator /usr/local/bin/didcomm-mediator

# Expose the necessary port
EXPOSE 8080

# Run the server
CMD ["didcomm-mediator"]
25 changes: 25 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
version: '3.8'
services:
mediator:
build:
context: .
container_name: didcomm-mediator
ports:
- "8080:3000"
env_file:
- .env
depends_on:
- mongodb

mongodb:
image: mongo:latest
container_name: mongodb
ports:
- "27017:27017"
env_file:
- .env
volumes:
- mongo-data:/data/db

volumes:
mongo-data:
47 changes: 47 additions & 0 deletions docs/environment-setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# DIDComm Mediator Integration Environment Setup

This guide provides step-by-step instructions to set up the integration environment for deploying, testing, and interacting with the Rust-based DIDComm mediator server.

## Prerequisites
Before you begin, ensure the following are installed on your system:
- Docker: version 20+([install docker](https://docs.docker.com/engine/install/debian/))
- Rust: latest stable version ([install rust](https://www.rust-lang.org/tools/install))
- MongoDB: latest stable version ([install mongodb](https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/))

This documentation assumes you have clone the [mediator](https://github.com/adorsys/didcomm-mediator-rs) and are in the root of the project

## step 1: Setup the environment variables
Modify the ```.env``` file with the right values for the variables

## Step 2: Start The Environment

```sh
docker-compose up -d
Christiantyemele marked this conversation as resolved.
Show resolved Hide resolved
```
Verify that all containers are running by executing
```sh
docker-compose ps
```
## Step 3: Test Connectivity
Use a tool like Postman or curl to verify that the server is running and responding.
```sh
curl -X GET http://0.0.0.0:8080/ \
-H "Content-Type: application/json" \
```
Christiantyemele marked this conversation as resolved.
Show resolved Hide resolved
Expected Response: A JSON object indicating the mediator is operational

## Step 4: Logging And Monitoring
For real time monitoring of the logs run the command
```sh
docker logs -f didcomm-mediator
```
Or save them in a file using the command
```sh
docker logs didcommm-mediator > mediator.log
```

## Step 5: Cleanup
To Stop and remove the environment
```sh
docker-compose down
```
3 changes: 2 additions & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ async fn main() {

// Start server
let port = std::env::var("SERVER_LOCAL_PORT").unwrap_or("3000".to_owned());
let addr: SocketAddr = format!("127.0.0.1:{port}").parse().unwrap();
let ip = std::env::var("SERVER_PUBLIC_IP").unwrap_or("0.0.0.0".to_owned());
let addr: SocketAddr = format!("{ip}:{port}").parse().unwrap();

tracing::info!("listening on {addr}");
generic_server_with_graceful_shutdown(addr).await;
Expand Down
Loading