{"id":18563043,"url":"https://github.com/assemblee-virtuelle/archipelago","last_synced_at":"2025-04-10T03:32:31.846Z","repository":{"id":37209590,"uuid":"441950990","full_name":"assemblee-virtuelle/archipelago","owner":"assemblee-virtuelle","description":"Fostering interconnections between communities by creating synergies between their platforms","archived":false,"fork":false,"pushed_at":"2024-05-15T20:15:13.000Z","size":2690,"stargazers_count":13,"open_issues_count":79,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-22T12:20:24.617Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/assemblee-virtuelle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"open_collective":"archipelago-software"}},"created_at":"2021-12-26T17:49:55.000Z","updated_at":"2024-05-28T12:29:42.347Z","dependencies_parsed_at":"2023-09-28T11:58:05.178Z","dependency_job_id":"dc33be69-1332-46d2-9dcb-e99e12c70497","html_url":"https://github.com/assemblee-virtuelle/archipelago","commit_stats":{"total_commits":224,"total_committers":9,"mean_commits":24.88888888888889,"dds":0.5714285714285714,"last_synced_commit":"36f0e060ccbe4c6e807eec5cb0ec8e471950d993"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblee-virtuelle%2Farchipelago","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblee-virtuelle%2Farchipelago/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblee-virtuelle%2Farchipelago/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblee-virtuelle%2Farchipelago/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/assemblee-virtuelle","download_url":"https://codeload.github.com/assemblee-virtuelle/archipelago/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248151318,"owners_count":21056070,"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","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":[],"created_at":"2024-11-06T22:11:41.977Z","updated_at":"2025-04-10T03:32:31.830Z","avatar_url":"https://github.com/assemblee-virtuelle.png","language":"JavaScript","funding_links":["https://opencollective.com/archipelago-software"],"categories":["[🔬 semantics](https://github.com/stars/ketsapiwiq/lists/semantics)"],"sub_categories":[],"readme":"# Archipelago\n\n[![SemApps](https://badgen.net/badge/Powered%20by/SemApps/28CDFB)](https://semapps.org)\n\n\u003e Fostering interconnections between communities by creating synergies between their platforms\n\n![archipelago](https://user-images.githubusercontent.com/17931931/196366532-f67d8ce3-749b-4791-ba31-493415983d3b.png)\n\nA collaborative, interoperable and modular knowledge management system, compliant with most semantic web specifications: LDP, SPARQL, ActivityPub, WAC, WebID.\n\nBased on linked data \u0026 semantic web technologies, it allows the co-production of knowledge graphs.\nBuilt on open standards, it enables the development of interoperable information systems.\nDesigned on a modular architecture, it gives everyone the opportunity to build and customize platforms on demand.\nThanks to the micro-service architecture of [SemApps](https://github.com/assemblee-virtuelle/semapps), it is easy to extend it with your own business logic.\n\n\n## Getting started\n\n### Triple store\n\nLaunch the [Jena Fuseki](https://jena.apache.org/documentation/fuseki2/) triplestore on port 3030:\n\n```bash\ndocker-compose up -d fuseki\n```\n\n### Middleware\n\nAdd a `.env.local` file in the `/middleware` directory and fill the required OIDC configurations:\n\n```dotenv\nSEMAPPS_OIDC_ISSUER=\nSEMAPPS_OIDC_CLIENT_ID=\nSEMAPPS_OIDC_CLIENT_SECRET=\n```\n\nLaunch the middleware on port 3000:\n\n```bash\ncd middleware\nyarn install\nyarn run dev\n```\n\n\u003e This will launch Moleculer in [REPL mode](https://moleculer.services/docs/0.14/moleculer-repl.html), allowing you to call actions directly.\n\n### Frontend\n\nLaunch the frontend on port 4000:\n\n```bash\ncd frontend\nyarn install\nyarn start\n```\n\n## Archipelago customization\n\nIf you need to customize your Archipelago, you can follow the docs below:\n\n- [Configuration file](./docs/configuration.md)\n- [Layout configuration](./docs/layouts.md)\n- [Resources permissions](./docs/permissions.md)\n\n## Linking to SemApps packages\n\nTo modify packages on the [SemApps repository](https://github.com/assemblee-virtuelle/semapps) and see the changes before they are published on NPM, see the following instructions.\n\n### Linking backend packages\n\nTo link backend packages, you can use [`yarn link`](https://classic.yarnpkg.com/en/docs/cli/link/).\n\n```bash\ncd /SEMAPPS_REPO/src/middleware\nyarn run link-all\ncd /ARCHIPELAGO_REPO\nyarn run link-semapps-packages\n```\n\n### Linking frontend packages\n\nLinking frontend packages with `yarn link` doesn't work because it causes version mismatch errors for React and MUI (see [this PR](https://github.com/assemblee-virtuelle/semapps/pull/1180) for explainations). So you should use [Yalc](https://github.com/wclr/yalc) instead. Fortunately, we make it easy for you.\n\n```bash\ncd /SEMAPPS_REPO/src/frontend\nyarn run yalc:publish\ncd /ARCHIPELAGO_REPO/frontend\nyarn run link-semapps-packages\n```\n\nAdditionally, frontend packages need to be rebuilt on every changes, or they will not be taken into account by Archipelago. You can use `yarn run build` to build a package once, or `yarn run watch` to rebuild a package on every change. On every build, the new package will be published to Yalc.\n\nThanks to git hooks, the frontend packages will also be published to Yalc whenever git branches are changed.\n\n## Run database migrations\n\nYou can use `dbMigrate` script to create database migrations and/or runs them.\nMigrations files are created by default in `middleware/migrations` folder.\n\n```bash\ncd middleware\nyarn run dbMigrate\n\n# To create a new migration file\nyarn run dbMigrate create --name archipelago-changeResourceAttribute\n\n# To list all migrations\nyarn run dbMigrate status\n\n# To apply next not applied migration\nyarn run dbMigration up\n\n# To apply a given migration\nyarn run dbMigration up --name archipelago-changeResourceAttribute\n\n# To apply all not applied migrations\nyarn run dbMigration up --latest\n\n# To rollback previous applied migration\nyarn run dbMigration down\n\n# To rollback a migration\nyarn run dbMigration down --name archipelago-changeResourceAttribute\n\n# To rollback all applied migrations\nyarn run dbMigration down --earliest\n```\n\nYou can also call dbMigration actions from REPL middleware with `call dbMigration.status` for example.\n\n## Deploying to production\n\nFollow the guide [here](deploy/README.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemblee-virtuelle%2Farchipelago","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassemblee-virtuelle%2Farchipelago","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemblee-virtuelle%2Farchipelago/lists"}