{"id":50802498,"url":"https://github.com/mjanez/easy-dataspace-deploy","last_synced_at":"2026-06-12T21:33:20.985Z","repository":{"id":361864117,"uuid":"1253136719","full_name":"mjanez/easy-dataspace-deploy","owner":"mjanez","description":"Deploy a fully-featured Data Space Portal (EDC/DSP compatible) with a single docker compose up.","archived":false,"fork":false,"pushed_at":"2026-06-01T14:49:03.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T16:27:01.651Z","etag":null,"topics":["connector","data-space","data-spaces","dataspace","dcat","docker","docker-compose","dsp","edc","espacio-datos","minimum-viable-dataspace","mvd"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mjanez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-29T07:24:03.000Z","updated_at":"2026-06-01T15:19:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mjanez/easy-dataspace-deploy","commit_stats":null,"previous_names":["mjanez/easy-dataspace-deploy"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/mjanez/easy-dataspace-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjanez%2Feasy-dataspace-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjanez%2Feasy-dataspace-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjanez%2Feasy-dataspace-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjanez%2Feasy-dataspace-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjanez","download_url":"https://codeload.github.com/mjanez/easy-dataspace-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjanez%2Feasy-dataspace-deploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34263872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"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":["connector","data-space","data-spaces","dataspace","dcat","docker","docker-compose","dsp","edc","espacio-datos","minimum-viable-dataspace","mvd"],"created_at":"2026-06-12T21:33:17.951Z","updated_at":"2026-06-12T21:33:20.930Z","avatar_url":"https://github.com/mjanez.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Easy Dataspace Deploy\n\nDeploy a fully-featured Data Space Portal (EDC/DSP compatible) with a single `docker compose up`.\n\n## Overview\n\nThis repository provides a ready-to-use Docker Compose stack for deploying the [Data Space Portal](https://github.com/mjanez/dataspace-portal) with:\n\n- Portal frontend + backend + catalog crawler\n- Keycloak identity provider (with dev realm and demo users)\n- 3 demo EDC connectors with DAPS authentication\n- OAuth2 Proxy for secure access\n- Caddy reverse proxies\n- Optional: Jaeger + Prometheus telemetry\n\n## Prerequisites\n\n- Docker Engine 24+ and Docker Compose v2\n- 8 GB RAM minimum\n- `openssl` and `curl` (for DAPS certificate generation)\n\n## Quickstart\n\n```bash\n# 1. Clone\ngit clone https://github.com/mjanez/easy-dataspace-deploy.git\ncd easy-dataspace-deploy\n\n# 2. Create your environment file\ncp .env.example .env\n\n# 3. Generate DAPS certificates\nchmod +x connectors/setup-daps-certs.sh crawler/regenerate-daps-certs.sh\n./connectors/setup-daps-certs.sh\n\n# 4. Start the stack\ndocker compose up -d\n\n# 5. Open the portal\n# http://portal.localhost:18000\n```\n\n### Demo Users\n\n| Email | Password | Role |\n|-------|----------|------|\n| user1@org1.null | 111 | Authority Admin |\n| user3@org2.null | 333 | Participant Admin |\n| user7@org4.null | 777 | Service Partner Admin |\n| user8@org5.null | 888 | Operator Admin |\n\n## Custom Branding (Flavours)\n\nCustomize your portal's look without rebuilding images:\n\n```bash\ncat flavours/example/.env.brand \u003e\u003e .env\ndocker compose up -d\n```\n\n| Variable | Purpose |\n|----------|---------|\n| `FRONTEND_BRAND_LOGO_URL` | Main logo (absolute URL or relative path) |\n| `FRONTEND_BRAND_LOGO_SMALL_URL` | Small/collapsed sidebar logo |\n| `FRONTEND_BRAND_LOGO_LOGIN_URL` | Login page logo |\n| `FRONTEND_BRAND_COPYRIGHT` | Footer copyright text |\n| `FRONTEND_PORTAL_DISPLAY_NAME` | Portal title shown in UI |\n| `FRONTEND_DATASPACE_SHORT_NAME` | Dataspace short name |\n\nSee [flavours/README.md](flavours/README.md) for details.\n\n## Architecture\n\n```\nBrowser\n  |\n  v\nportal-caddy :18000\n  |-- /api, /oauth2 --\u003e oauth2-proxy --\u003e portal-backend (Quarkus)\n  |-- /* --\u003e portal-frontend (Angular/nginx)\n  |\nkeycloak :18080 (Identity Provider, DAPS realm)\n  |\nconnector-{a,b,c} :18100-18300 (EDC connectors + management UI)\n  |\ncatalog-crawler :18400 (Dataspace indexer)\n  |\nportal-db (PostgreSQL, shared by backend + crawler)\n```\n\n## Telemetry (Optional)\n\n```bash\n./observability/download-otel-agent.sh\ndocker compose -f docker-compose.yml -f docker-compose.telemetry.yml up -d\n# Jaeger UI: http://localhost:16686\n# Prometheus: http://localhost:9090\n```\n\n## Stopping\n\n```bash\ndocker compose down        # stop services, keep data\ndocker compose down -v     # stop services AND delete volumes\n```\n\n## Troubleshooting\n\n- **Windows users**: Do NOT use `COMPOSE_FILE` with `:` separator. Use `-f` flags instead.\n- **First start is slow**: Keycloak needs ~60-90s to import the realm.\n- **DAPS errors**: Ensure you ran `./connectors/setup-daps-certs.sh` before starting.\n- **Frontend shows blank page**: Check that `portal-frontend` container started and that `app-configuration.json` is being generated.\n\n## License\n\nApache License 2.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjanez%2Feasy-dataspace-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjanez%2Feasy-dataspace-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjanez%2Feasy-dataspace-deploy/lists"}