README.md (view raw)
1
2
3[](code_of_conduct.md)
4
5# News
6
7**⚠️ Important Notice: Caroster Service Shutdown on November 30, 2026**
8
9Dear users, partners, and contributors,
10
11It is with mixed emotions that we announce the definitive shutdown of the Caroster service on **November 30, 2026**.
12
13Despite our efforts and commitment to open source carpooling, Caroster has not achieved the viability necessary to sustain the service and fund essential technical upgrades.
14
15What alternatives are available? We strongly recommend switching to **Mobicoop**, an ethical, open source solution offering similar features for your home-to-work commutes and events.
16
17A huge thank you to all the users who trusted us. We also extend our gratitude to the open source community that contributed to this project. While this adventure comes to an end, the spirit of carpooling continues elsewhere.
18
19This shutdown does not affect **[Octree](https://octree.ch/)** 's overall activities. On the contrary, it allows us to focus our resources and expertise on two other projects close to our hearts:
20
21- 🗳️ **[Voca](https://voca.city/):** Our open source solution that enables informed decision-making and engagement for organizations, associations, cooperatives, or citizen movements through their own democratic space.
22- ♻️ **[R-21](https://r-21.ch/):** Our waste statistics analysis tool that helps municipalities visualize and manage their waste data.
23
24Caroster Team (Octree)
25
26# About Caroster
27
28Caroster is a simple, free and open-source carpooling app designed to makes it easy to organize shared trips for an event, a party, a seminar, a sport game, a camp or any other trip.
29
30Our vision is to make Caroster a true digital common, a project collectively governed by its community, beyond any individual or organization. Our ambition is for Caroster to survive its creators, growing through shared governance and open collaboration.
31
32Caroster is developed and provided by [Octree](https://octree.ch/), a sustainable startup studio based in Geneva. Octree is made up of a committed team that aims to provide tools that respect human and ecological values.
33
34We believe that all creations should be free of rights, freely modifiable or duplicable, to serve as many people as possible. We prefer cooperation to competition, so Caroster is an open source project under the GNU - AGPL 3.0 license.
35
36We welcome contributions from anyone who shares our vision of a more sustainable and cooperative world :)
37
38> Are you on GitHub ? Please use the [reference repository on GitLab](https://git.octree.ch/p/caroster) for issues and pull requests.
39
40## Features
41
42This project makes it easy to:
43
44- 📅 Create a dedicated carpool page for each event
45- ⚙️ Customize event settings (description, location, date)
46- 🗺️ See trips proposed on a map
47- 🚗 Propose a trip as driver in just a few clicks
48- 👤 Add to a trip as passenger in just a few clicks
49- ⏳ Request a trip in the waiting list menu for passengers
50- 🔄 Manage round trips for the event
51- 🔍 Search for a trip by departure location with a search bar
52- 🔔 Get email notifications when a new trip is available
53- 📬 Receive weekly summary emails for organizers
54- 🛠️ Manage event with administrator roles (_Caroster paid only_)
55
56## Getting Started
57
58These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
59
60Caroster is composed of two parts:
61
62- A frontend app based on [NextJS](https://nextjs.org/)
63- A backend server using [Strapi](https://strapi.io/)
64
65> Caroster is currently in Beta. Big changes can happen, especially in terms of data architecture.
66
67### Prerequisites
68
69To fully utilize your instance of Caroster, you will need an SMTP configuration to send emails.
70
71#### (Optional) Mapbox token
72
73In order to activate geocoding and map features, you will need a Mapbox token.
74
75[Create a mapbox account](https://account.mapbox.com/auth/signup/) if you don't have any and [generate your token for free](https://docs.mapbox.com/help/getting-started/access-tokens/#:~:text=You%20can%20find%20your%20access,using%20the%20Mapbox%20Tokens%20API.).
76
77There is no need to setup a payment method as long as you don't exceed [the temporary geocoding api free rate ](https://www.mapbox.com/pricing#temporary-geocoding-api), but if you do so, the app will still work and geocoding will simply disable till the end of the ongoing month.
78
79Copy the mapbox token in the .env file as a value for "MAPBOX_TOKEN" variable to start using geocoding and map features;
80
81#### Tiles server
82
83You can use the TOKEN_FREE_TILES variables in the .env file to setup a tiles server used by the map features. By default, we use the [© OpenStreetMap ](https://www.openstreetmap.org/copyright/en) test server.
84
85Make sure to respect the copyrights of the tiles server you setup, or those from [© OpenStreetMap ](https://www.openstreetmap.org/copyright/en) if you keep the default settings.
86
87> :warning: Be aware that some services might require a token to use their tiles server.
88>
89> We don't have yet developed a way to obfuscate this token from the users.
90
91> :warning: This means anyone accessing the application will be able to use this token on your behalf, which exposes you to substantial risks (financial, legal, reputational, operational) that may affect you and the disponibility of the service.
92
93### Installing
94
95Clone the repo locally:
96
97```shell
98git clone https://git.octree.ch/p/caroster.git
99cd caroster
100```
101
102### Run with Docker
103
104First, edit `docker-compose.yml` to provide your SMTP configuration and optional Mapbox token:
105
106```yaml
107version: "3"
108services:
109 app:
110 ...
111 MAPBOX_TOKEN: pk.mapbox.token
112
113 SMTP_HOST: smtp.myserver.org
114 SMTP_PORT: 587
115 SMTP_USERNAME: user
116 SMTP_PASSWORD: password
117...
118```
119
120Then, create containers with Docker Compose:
121
122```shell
123docker compose up
124```
125
126Wait a few minutes while the application downloads needed packages,
127then go to http://localhost:8080.
128
129You can log on http://localhost:8080/admin with email `admin@example.org`
130and password `caroster`.
131
132## Development
133
134### Frontend
135
136These steps will prepare the frontend to run in development mode.
137
138```shell
139cd frontend
140yarn # or 'npm install'
141yarn dev
142```
143
144The frontend is now accessible on http://localhost:3000
145
146### Backend
147
148These steps will prepare and configure the backend to run in development mode.
149
150> You need a Postgres database running locally. Start one with `docker compose up psql -d`.
151
152```shell
153cd backend
154yarn # or 'npm install'
155cp .env.example .env
156vi .env # Edit with your own configuration
157yarn develop
158```
159
160The Strapi server is now ready and the admin is accessible on http://localhost:1337/admin.
161
162## Running the tests
163
164A few tests are available to check GraphQL endpoints behavior in the `e2e` directory.
165
166First, run Strapi in test mode:
167
168```shell
169cd backend
170cp .env.example .env
171vi .env # Edit with your own configuration
172yarn start-test
173```
174
175Then, run the tests:
176
177```shell
178cd e2e
179yarn
180yarn gql
181yarn test
182```
183
184## Contributing
185
186Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for submitting pull requests to us.
187All contributors and persons involved in the project follow our [code of conduct](CODE_OF_CONDUCT.md).
188
189*N.B.* Use [our Gitlab](https://git.octree.ch/p/caroster) to submit any PR or issues
190
191## Authors
192
193- [Octree](https://github.com/octree-gva) - sustainable startup studio - https://octree.ch
194
195See also the list of [contributors](https://github.com/octree-gva/caroster/graphs/contributors) who participated in this project.
196
197## License
198
199This project is licensed under the GNU Affero General Public License v3 - see the [LICENSE.md](LICENSE.md) file for details