diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..c44263db --- /dev/null +++ b/Dockerfile @@ -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 +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"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..8fb152cf --- /dev/null +++ b/docker-compose.yml @@ -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: diff --git a/docs/environment-setup.md b/docs/environment-setup.md new file mode 100644 index 00000000..1c95b638 --- /dev/null +++ b/docs/environment-setup.md @@ -0,0 +1,38 @@ +# 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 +``` +## 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" \ +``` + +## Step 4: Logging And Monitoring +to monitor the logs run the command +```sh +docker logs -f didcomm-mediator +``` + +## Step 5: Cleanup +To Stop and remove the environment +```sh +docker-compose down +``` \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 74c71fde..ceb397df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ 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 addr: SocketAddr = format!("0.0.0.0:{port}").parse().unwrap(); tracing::info!("listening on {addr}"); generic_server_with_graceful_shutdown(addr).await;