{"id":26189857,"url":"https://github.com/simplito/privmx-bridge-docker","last_synced_at":"2025-10-06T18:32:47.256Z","repository":{"id":272588699,"uuid":"879715518","full_name":"simplito/privmx-bridge-docker","owner":"simplito","description":"Docker Compose for PrivMX Bridge.","archived":false,"fork":false,"pushed_at":"2025-06-05T15:10:13.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-05T16:25:22.297Z","etag":null,"topics":["chat","communication","cryptography","data-transfer","decryption","e2ee","end-to-end-encryption","files","messages","messaging","privacy","privacy-protection","private","privmx","secure","security","simplito","storage","thread","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://privmx.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplito.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-28T12:28:08.000Z","updated_at":"2025-06-05T15:10:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"6df94374-635e-4e9e-b4a4-cfd35daf0a69","html_url":"https://github.com/simplito/privmx-bridge-docker","commit_stats":null,"previous_names":["simplito/privmx-bridge-docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simplito/privmx-bridge-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-bridge-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-bridge-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-bridge-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-bridge-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplito","download_url":"https://codeload.github.com/simplito/privmx-bridge-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-bridge-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270149345,"owners_count":24535728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","communication","cryptography","data-transfer","decryption","e2ee","end-to-end-encryption","files","messages","messaging","privacy","privacy-protection","private","privmx","secure","security","simplito","storage","thread","zero-knowledge"],"created_at":"2025-03-12T00:51:36.301Z","updated_at":"2025-10-06T18:32:47.160Z","avatar_url":"https://github.com/simplito.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PrivMX Bridge Docker\n\nThis repository provides a Docker Compose setup for PrivMX Bridge service along with its required dependencies.\nIt also includes MongoDB to provide a working PrivMX Bridge instance.\n[PrivMX Bridge](https://github.com/simplito/privmx-bridge) is a secure, zero-knowledge server for encrypted data storage and communication.\nIt allows users to communicate and exchange data in a fully encrypted environment, ensuring end-to-end encryption and protecting data privacy at every step.\n\nThe PrivMX Bridge docker image is distributed for two platforms:\n- linux/amd64\n- linux/arm64/v8\n\n## Setup\n\nClone the repository:\n\n```\ngit clone https://github.com/simplito/privmx-bridge-docker.git\ncd privmx-bridge-docker\n```\n\n## Quick start\n\nIt will boot up the containers, add the API key, one Solution, and one Context.\n\n```\n./setup.sh\n```\n\n**NOTE:** If you use Windows, run this command in Git Bash or a similar shell.\n\n**NOTE:** If this script ends with containers in a waiting state, try running this script again.\n\n**NOTE:** If you want to configure HTTPS [go to this section](#https).\n\n**NOTE:** If you want to use external MongoDB [go to this section](#external-mongodb).\n\n## Start\n\n```\ndocker compose up -d\n```\n\n## Stop\n\n```\ndocker compose down\n```\n\n## Logs\n\n```\ndocker compose logs -f privmx-bridge\ndocker compose logs -f mongodb\n```\n\n## Update\n\nTo ensure you have the latest `privmx-bridge` image, always run the command below before executing the `docker compose up` command:\n\n```\ndocker compose pull privmx-bridge\n```\n\n## Options of the setup script\nIf you don't want to create a Solution or Context, use the `--no-solution` or `--no-context` argument. If you pass the `--no-solution` argument, also no Context will be created, because it must be assigned to a Solution.\n\n```\n./setup.sh --no-solution\n./setup.sh --no-context\n```\n\n### External MongoDB\nYou can use the `--db-url` argument to disable the included MongoDB container and instruct PrivMX Bridge to connect to a given database.\n```\n./setup.sh --db-url \"YOUR_MONGODB_CONNECTION_STRING\"\n```\nThis command creates a `docker-compose.override.yaml` file. If you change your mind and want to use the included MongoDB, delete this file.\n\n## Configuration\n\nYou can create a `bridge.env` file and put [environment variables](https://github.com/simplito/privmx-bridge#configuration-options) there.\nDon't forget to bring down and bring up your setup to apply the changes:\n\n```\ndocker compose down\ndocker compose up -d\n```\n\n## Create API Key\n\nRun:\n\n```\n./createApiKey.sh\n```\n\nThe API key allows you to fully manage your PrivMX Bridge. It is also saved in the `volumes/.env` file and will be used by the `cli.sh` script.\n\n## Manage PrivMX Bridge\n\nRun:\n\n```\n./cli.sh\n```\n\nTo create a new Solution run:\n\n```\n./cli.sh solution/createSolution '{\"name\": \"My New Solution\"}'\n```\n\nTo create a new Context run:\n\n```\n./cli.sh context/createContext '{\"solution\": \"\u003csolution-id-from-above\u003e\", \"name\": \"MainContext\", \"description\": \"\", \"scope\": \"private\"}'\n```\n\n## Documentation\n\nDocumentation for your PrivMX Bridge API is available at [http://localhost:9111/docs](http://localhost:9111/docs) or [https://bridge.privmx.dev](https://bridge.privmx.dev).\n\n## Management panel\n\nManagement panel for your PrivMX Bridge is available at [http://localhost:9111/panel](http://localhost:9111/panel).\n\n## Generate Key Pair\n\nTo generate a new ECC key pair, run:\n\n```\n./genKeyPair.sh\n```\n\n## HTTPS\n\nThe following example uses Nginx + Certbot method on Debian-based systems, but there are different ways to set up HTTPS.\nFirst, set up your DNS so that `your.domain.com` points to your server.\nNext, install Nginx and Certbot:\n\n```\nsudo apt-get update\nsudo apt install certbot python3-certbot-nginx nginx\n```\n\nThen, open ports 80 and 443 on the firewall (this is outside the scope of this tutorial).\nNext, add a virtual host by creating the `/etc/nginx/sites-available/your.domain.com` file with the following content:\n\n```\nserver {\n    listen 80;\n    server_name your.domain.com;\n\n    location / {\n        proxy_pass http://localhost:9111;\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $remote_addr;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"Upgrade\";\n    }\n}\n```\n\nActivate the virtual host:\n\n```\nsudo ln -s ../sites-available/your.domain.com /etc/nginx/sites-enabled/your.domain.com\n```\n\nCheck the Nginx configuration:\n\n```\nnginx -t\n```\n\nRestart the Nginx:\n\n```\nsudo systemctl reload nginx\n```\n\nRetrieve a certificate using Certbot with the Nginx plugin:\n\n```\nsudo certbot --nginx -d your.domain.com\n```\n\nTest the renewal process:\n\n```\nsudo certbot renew --dry-run\n```\n\n# System Requirements\n\nSystem requirements for PrivMX Bridge itself:\n- 1 CPU\n- 512 MB RAM\n\nNote that this Docker Compose setup also includes MongoDB. Go to\n[MongoDB System Requirements](https://www.mongodb.com/docs/cloud-manager/tutorial/provisioning-prep/) to learn more.\n\n# License\n\nThis software is licensed under the PrivMX Free License. PrivMX Bridge is also licensed under the PrivMX Free License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplito%2Fprivmx-bridge-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplito%2Fprivmx-bridge-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplito%2Fprivmx-bridge-docker/lists"}