{"id":21229820,"url":"https://github.com/activitypods/welcometomyplace","last_synced_at":"2025-07-10T15:32:32.791Z","repository":{"id":38107471,"uuid":"457455583","full_name":"activitypods/welcometomyplace","owner":"activitypods","description":"An app to foster living together based on welcome, trust and mutual aid","archived":false,"fork":false,"pushed_at":"2024-10-29T14:32:40.000Z","size":4432,"stargazers_count":16,"open_issues_count":31,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-29T17:55:37.755Z","etag":null,"topics":["activitypods","activitypub","semapps","solid"],"latest_commit_sha":null,"homepage":"https://welcometomyplace.org","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/activitypods.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}},"created_at":"2022-02-09T17:14:42.000Z","updated_at":"2024-10-29T14:34:11.000Z","dependencies_parsed_at":"2023-09-23T01:59:01.444Z","dependency_job_id":"67671cad-3683-499a-b8c4-efaac6d834c2","html_url":"https://github.com/activitypods/welcometomyplace","commit_stats":{"total_commits":143,"total_committers":3,"mean_commits":"47.666666666666664","dds":0.06293706293706292,"last_synced_commit":"c44bfee59c84b2bf40c47fb7b082435af87f9aa9"},"previous_names":["activitypods/welcometomyplace"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activitypods%2Fwelcometomyplace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activitypods%2Fwelcometomyplace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activitypods%2Fwelcometomyplace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activitypods%2Fwelcometomyplace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/activitypods","download_url":"https://codeload.github.com/activitypods/welcometomyplace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225092701,"owners_count":17419692,"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":["activitypods","activitypub","semapps","solid"],"created_at":"2024-11-20T23:29:47.980Z","updated_at":"2024-11-20T23:29:49.523Z","avatar_url":"https://github.com/activitypods.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![SemApps](https://badgen.net/badge/Powered%20by/SemApps/28CDFB)](https://semapps.org)\n\n![](./frontend/public/logo192.png)\n\n# Welcome to my place\n\nThis application is about events which are private by default: you only see those you have been invited to. Anyone is free to create an event and share it with its network. After an event, all participants can add the contact of all other participants. But at the beginning, you must know the contact link (or the ID of type `@bob@podprovider.com`) to start your personal network.\n\nAll data are stored directly in users Pods. See the [ActivityPods](https://github.com/activitypods/activitypods) project for more information.\n\n## Launch locally\n\n### Requirements\n\n- Git\n- Makefile\n- [Docker](https://docs.docker.com/engine/install/) (make sure you have the `docker-compose-plugin` installed)\n- [NodeJS](https://nodejs.org) 20.0 or above\n- [Yarn](https://yarnpkg.com/)\n\n### Setup environment variables\n\nA single environment variable is required: the MapBox access token to autocomplete the location field on the Pod provider and app frontends.\n\nFortunately MapBox has a generous free tier with 100,000 requests per month, so you should not need to pay anything. But you still need to get the token. [See this page](https://docs.mapbox.com/help/getting-started/access-tokens/) for more information.\n\nOnce you have your access token, create a `.env.local` file in the `/frontend` directory and set it there.\n\n```bash\nREACT_APP_MAPBOX_ACCESS_TOKEN=\n```\n\n### Run the Pod provider\n\nIn order to locally run the boilerplate, you need a local Pod provider, because a remote Pod provider will not be able to interact with a local application backend.\n\nFortunately, we provide [Docker images](https://hub.docker.com/orgs/activitypods/repositories) to launch a local Pod provider in a single command:\n\n```bash\nmake start\n```\n\nThis will also launch Jena Fuseki (the triplestore used to store semantic data) and Redis, which are needed by the Pod provider and will also be used by the application.\n\n### Launch the backend\n\nAlthough Docker could also be used to launch the application backend, we recommend to launch it outside of Docker to avoid the usual problems we encounter in containerized environments.\n\nOn the other hand, we will use the same Fuseki and Redis server as used for the ActivityPods backend.\n\n```bash\ncd backend\nyarn install\nyarn run dev\n```\n\nThis will bootstrap the server and, if there are no errors, finish with a message telling you that Moleculer's ServiceBroker has started.\n\nYou can see the application details at http://localhost:3001/app\n\nYou now have access to Moleculer CLI. Enter this command to insert all the available event formats:\n\n```\ncall formats.freshImport\n```\n\n### Launch the frontend\n\nNow you can launch the app frontend.\n\n```bash\ncd frontend\nyarn install\nyarn run dev\n```\n\nA browser window should automatically be launched. If not, you can access the app frontend at http://localhost:4000\n\n## Linking to SemApps/ActivityPods packages (optional)\n\nIf you wish to modify packages on the [SemApps repository](https://github.com/assemblee-virtuelle/semapps) and the [ActivityPods repository](https://github.com/activitypods/activitypods) and see the changes before they are published, 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 /ACTIVITYPODS_REPO/app-framework\nyarn run link-all\ncd /THIS_REPO/backend\nyarn run link-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 /ACTIVITYPODS_REPO/app-framework\nyarn run link-all\ncd /THIS_REPO/frontend\nyarn run link-packages\n```\n\nAdditionally, frontend packages need to be rebuilt on every changes, or they will not be taken into account by ActivityPods. 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## Deploy to production\n\nThe `docker-compose-prod.yml` includes everything you need to deploy this app to production:\n\n- The backend of the app\n- The frontend of the app\n- [Traefik](https://traefik.io) to orchestrate domain names and SSL certificates\n- [Apache Jena Fuseki](https://jena.apache.org/documentation/fuseki2/) to store semantic data\n- [Redis](https://redis.io) used for cache and jobs queue\n- [Arena](https://github.com/bee-queue/arena) to watch the jobs queue\n\n### Requirements\n\nA Linux server with 4Gb of RAM is required for Fuseki to work properly, otherwise there is a high risk that it runs out of memory and gets killed. For large Pod providers, we recommend 8Gb of RAM.\n\n### Point your domains to your server IP\n\nGo to your domain provider and point the domain you want to use to your server IP (with a A-type registration).\n\nNote that, by default, the backend will be on the same domain name as the frontend, but on the /api path.\n\n### Clone this repository\n\nConnect to your server in SSH and clone this repository:\n\n```bash\ngit clone https://github.com/assemblee-virtuelle/welcometomyplace.git\n```\n\n### Install Docker with the Compose plugin\n\nWe have prepared a script for this:\n\n```bash\n./install-docker.sh\n```\n\nIf that doesn't work with your server config, you can follow [Docker installation instructions](https://docs.docker.com/engine/install/).\n\n### Setup .env variables\n\nCopy the `.env.production` file to a `.env.production.local` file (`cp .env.production .env.production.local`) and enter your server-specific informations. [Click here](https://docs.mapbox.com/help/getting-started/access-tokens/) to find how to generate a MapBox access token, which is necessary for the autocomplete feature.\n\n```env\nDOMAIN_NAME=welcometomyplace.org\nBACKEND_PATH=/api\nAPP_NAME=Welcome to my place\nAPP_DESCRIPTION=\"Foster living together based on welcome, trust and mutual aid\"\nAPP_LANG=en\nLETSENCRYPT_EMAIL=\nFUSEKI_PASSWORD=\nMAPBOX_ACCESS_TOKEN=\nPOD_PROVIDER_BASE_URL=  # If you want to enforce a Pod provider for this app\n```\n\nIf you want to customize more thoroughly the app, you can do the same with the `.env.production` files in the /backend and /frontend directories (copy them to a `.env.production.local` file). Note all env files ending with `.local` are not commited.\n\n### Build and launch\n\nYou can now launch the Docker containers with this command:\n\n```\nmake build-prod\nmake start-prod\n```\n\nIf there is a problem, you can call `make attach-backend-prod`, which will give you access to ActivityPods' Moleculer CLI ([Moleculer](https://moleculer.services/) is the microservice framework that all ActivityPods services run on.) Errors will be displayed here.\n\n### Explore your server\n\nThe frontend should now be available at the domain you chose. The backend is available on the `/api` path.\n\nFuseki provides also a frontend to see the datasets. It is available on port 3030 of your server. The login is \"admin\" and the password is the one you chose on the global environment variables.\n\nYou can also see the jobs queue by connecting to Arena on port 4567 of your server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivitypods%2Fwelcometomyplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factivitypods%2Fwelcometomyplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivitypods%2Fwelcometomyplace/lists"}