.github | ||
.sobelow | ||
assets | ||
flavours/classic | ||
lib | ||
priv/gettext | ||
test | ||
.dockerignore | ||
.envrc | ||
.formatter.exs | ||
.gitignore | ||
.iex.exs | ||
.tool-versions | ||
DEPENDENCIES.md | ||
docker-compose.release.yml | ||
docker-compose.yml | ||
Dockerfile.dev | ||
Dockerfile.release | ||
git-publish.sh | ||
LICENSE | ||
Makefile | ||
mess.exs | ||
mix.exs | ||
mix.lock | ||
README.md | ||
shell.nix |
Bonfire
This app is part of the Bonfire ecosystem and bundles the following extensions:
- Bonfire:Common - common utils
- Bonfire:Me - accounts, user profiles...
- Bonfire:Social - feeds, activities, posts, boosting, flagging, etc...
- Bonfire:UI:Social - interface for basic social activities
- Bonfire:Boundaries - define circles and associated privacy or permissions
- Bonfire:Federate:ActivityPub - federates activities with ActivityPub to participate in the fediverse
- Bonfire:Tag - @ mentions, hashtags, and tagging using topics/categories from Bonfire:Classify
- Bonfire:Classify - categories & classifications in taxonomies
- Bonfire:Geolocate - places
Handy commands
- Upgrade the app + extensions:
make update
(ormake d-update
if using docker) - Wipe clean Bonfire extensions builds so they get recompiled:
mix bonfire.deps.clean
(necessary after changing config such as inconfig/bonfire_data.exs
) - Clone a git dep and use the local version, eg:
make dep-clone-local dep="bonfire_me" repo=https://github.com/bonfire-networks/bonfire_me
- Automatically commit and push all your changes to local forks (caution, here be dragons!):
make bonfire-push-all-update
- Migrate DB when the app is running:
Bonfire.Repo.ReleaseTasks.migrate
- More handy commands:
make help
andmix help
Dev environment with Nix
If you use direnv, just cd in the directory and you will have all the dependencies. If you just have nix, running nix-shell
will set you up with a shell.
You will need to create and init the db directory (keeping all your Postgres data inside this directory).
create the db directory initdb ./db
create the postgres user createuser postgres -ds
create the db createdb bonfire_dev
start the postgres instance pg_ctl -l "$PGDATA/server.log" start
mix deps.get
to get elixir dependencies
cd assets && npm install
to get the frontend dependencies
mix ecto.migrate
to get an up to date database
iex -S phx.server
to start the server
check out the app on localhost:4000
in your browser
Additional information
-
messctl is a little utility for programmatically updating the .deps files from which the final elixir dependencies list is compiled by the mess script. The only use of it is in the dep-* tasks of the Makefile. It is used by some of the project developers and the build does not rely on it.
-
FORKS is used by the same developer tasks to determine where to find local forks of dependencies.
Copyright and License
Copyright (c) 2021 Bonfire Contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.