what flavour would you like?

This commit is contained in:
Mayel 2021-05-20 14:38:18 +02:00
parent dfe271f36c
commit 4f8edc49f8
135 changed files with 508 additions and 58 deletions

View file

@ -38,8 +38,8 @@ jobs:
name: Maybe tag version & release Docker image
runs-on: ubuntu-latest
env:
FLAVOUR: valueflows
BONFIRE_FLAVOUR: flavours/valueflows
FLAVOUR: coordination
BONFIRE_FLAVOUR: flavours/coordination
DOCKER_REPO: bonfire-with-valueflows-api
steps:
-

View file

@ -1,2 +1,2 @@
erlang 24.0
elixir 1.11.4-otp-24
elixir 1.12-otp-24

View file

@ -35,17 +35,17 @@ define load_env
endef
init:
@echo "Light that fire... $(APP_NAME) with $(FLAVOUR) flavour $(APP_VSN) - $(APP_BUILD)"
@$(call setup_env,dev)
@ln -sfn $(BONFIRE_FLAVOUR)/config ./config
@mkdir -p config/prod
@mkdir -p config/dev
@touch config/deps.path
@cp -n config/templates/public.env config/dev/ | true
@cp -n config/templates/public.env config/prod/ | true
@cp -n config/templates/not_secret.env config/dev/secrets.env | true
@cp -n config/templates/not_secret.env config/prod/secrets.env | true
@$(call setup_env,dev)
@echo "Light that fire... $(APP_NAME) with $(FLAVOUR) flavour $(APP_VSN) - $(APP_BUILD)"
@mkdir -p forks/
@touch config/deps.path
@mkdir -p data/uploads/
@mkdir -p data/search/dev

View file

@ -1,10 +1,11 @@
## Bonfire
[Bonfire](https://bonfirenetworks.org/) - your plug and play federated network.
[Bonfire](https://bonfirenetworks.org/) - a federated social network for individuals and communities to design, operate and control their own digital lives.
### Flavours
This repo includes configurations to run different flavours of Bonfire, currently that is:
This repo includes configurations to run different [flavours of Bonfire](https://bonfirenetworks.org/apps.html), currently that is:
* [Classic](flavours/classic)
* [ValueFlows](flavours/valueflows)
* [Coordination](flavours/coordination)
* [Reflow](flavours/reflow)
## Handy commands

View file

@ -3,12 +3,10 @@ import Config
config :bonfire, :ui,
sidebar_components: [
{Bonfire.UI.Reflow.SidebarNavigationLive, []},
{Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Processes", process_url: "/process/"]},
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Task Lists", process_url: "/list/"]}
{Bonfire.UI.Social.SidebarNavigationLive, []},
],
smart_input: [
post: false,
post: true,
cw: true,
summary: true
],
@ -20,12 +18,12 @@ config :bonfire, :ui,
boosts: Bonfire.UI.Social.ProfileBoostsLive,
followers: Bonfire.UI.Social.ProfileFollowersLive,
followed: Bonfire.UI.Social.ProfileFollowersLive,
inventory: Bonfire.UI.Reflow.ProfileInventoryLive,
],
navigation: [
timeline: "timeline",
inventory: "inventory",
posts: "posts",
boosts: "boosts",
# private: "private",
],
widgets: [
],
@ -41,38 +39,4 @@ config :bonfire, :ui,
],
smart_input_forms: [
post: Bonfire.UI.Social.CreateActivityLive,
economic_event: Bonfire.UI.ValueFlows.SelectEconomicEventLive,
intent: Bonfire.UI.ValueFlows.CreateIntentLive,
process: Bonfire.UI.ValueFlows.CreateProcessLive,
#offer: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
# need:
transfer_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive,
produce_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
],
resource: [
navigation: [
timeline: "timeline",
material_passport: "material passport",
],
widgets: [
# Bonfire.UI.Social.SubscribeWidgetLive,
Bonfire.UI.ValueFlows.LocationWidgetLive,
Bonfire.UI.Social.HashtagsWidgetLive,
],
]
# process: [
# navigation: [
# events: "Economic events",
# intents: "Intents",
# # material_passport: "material passport",
# ],
# sections: [
# events: Bonfire.UI.ValueFlows.EconomicEventsLive,
# intents: Bonfire.UI.ValueFlows.IntentsLive,
# ],
# widgets: [
# # Bonfire.UI.Social.SubscribeWidgetLive,
# # Bonfire.UI.ValueFlows.LocationWidgetLive,
# # Bonfire.UI.Social.HashtagsWidgetLive,
# ],
# ]

View file

@ -35,4 +35,7 @@ bonfire_federate_activitypub = "https://github.com/bonfire-networks/bonfire_fede
bonfire_boundaries = "https://github.com/bonfire-networks/bonfire_boundaries#main"
bonfire_files = "https://github.com/bonfire-networks/bonfire_files#main"
#twinkle_star = "https://github.com/bonfire-networks/twinkle_star"
voodoo = "https://github.com/bonfire-networks/voodoo#main"
voodoo = "https://github.com/bonfire-networks/voodoo#main"
ecto_shorts = "https://github.com/bonfire-networks/ecto_shorts#main"
ecto_sparkles = "https://github.com/bonfire-networks/ecto_sparkles#main"
emote = "https://github.com/bonfire-networks/emote"

View file

@ -0,0 +1,80 @@
import Config
config :bonfire, :ui,
sidebar_components: [
{Bonfire.UI.Social.SidebarNavigationLive, []},
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Processes", process_url: "/process/"]},
{Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Task Lists", process_url: "/list/"]}
],
smart_input: [
post: true,
cw: true,
summary: true
],
profile: [
sections: [
timeline: Bonfire.UI.Social.ProfileTimelineLive,
private: Bonfire.UI.Social.PrivateLive,
posts: Bonfire.UI.Social.ProfilePostsLive,
boosts: Bonfire.UI.Social.ProfileBoostsLive,
followers: Bonfire.UI.Social.ProfileFollowersLive,
followed: Bonfire.UI.Social.ProfileFollowersLive,
# inventory: Bonfire.UI.Reflow.ProfileInventoryLive,
],
navigation: [
timeline: "timeline",
# inventory: "inventory",
posts: "posts",
boosts: "boosts",
# private: "private",
],
widgets: [
],
],
smart_input_activities: [
# offer: "Publish an offer",
# need: "Publish a need",
# transfer_resource: "Transfer a resource",
# produce_resource: "Add a resource",
# intent: "Indicate an itent",
# economic_event: "Record an economic event",
# process: "Define a process"
],
smart_input_forms: [
post: Bonfire.UI.Social.CreateActivityLive,
economic_event: Bonfire.UI.ValueFlows.SelectEconomicEventLive,
intent: Bonfire.UI.ValueFlows.CreateIntentLive,
process: Bonfire.UI.ValueFlows.CreateProcessLive,
#offer: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
# need:
transfer_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive,
produce_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
],
resource: [
navigation: [
timeline: "timeline",
material_passport: "material passport",
],
widgets: [
# Bonfire.UI.Social.SubscribeWidgetLive,
Bonfire.UI.ValueFlows.LocationWidgetLive,
Bonfire.UI.Social.HashtagsWidgetLive,
],
]
# process: [
# navigation: [
# events: "Economic events",
# intents: "Intents",
# # material_passport: "material passport",
# ],
# sections: [
# events: Bonfire.UI.ValueFlows.EconomicEventsLive,
# intents: Bonfire.UI.ValueFlows.IntentsLive,
# ],
# widgets: [
# # Bonfire.UI.Social.SubscribeWidgetLive,
# # Bonfire.UI.ValueFlows.LocationWidgetLive,
# # Bonfire.UI.Social.HashtagsWidgetLive,
# ],
# ]

View file

@ -18,7 +18,7 @@ bonfire_geolocate = "https://github.com/bonfire-networks/bonfire_geolocate#main"
bonfire_valueflows = "https://github.com/bonfire-networks/bonfire_valueflows#main"
bonfire_api_graphql = "https://github.com/bonfire-networks/bonfire_api_graphql#main"
bonfire_ui_valueflows = "https://github.com/bonfire-networks/bonfire_ui_valueflows#main"
bonfire_ui_reflow = "https://github.com/bonfire-networks/bonfire_ui_reflow#main"
# bonfire_ui_reflow = "https://github.com/bonfire-networks/bonfire_ui_reflow#main"
bonfire_ui_coordination = "https://github.com/bonfire-networks/bonfire_ui_coordination#main"
bonfire_breadpub = "https://github.com/bonfire-networks/bonfire_breadpub#main"
# bonfire_recyclapp = "https://github.com/bonfire-networks/bonfire_recyclapp#main"
@ -38,3 +38,4 @@ bonfire_files = "https://github.com/bonfire-networks/bonfire_files#main"
voodoo = "https://github.com/bonfire-networks/voodoo#main"
ecto_shorts = "https://github.com/bonfire-networks/ecto_shorts#main"
ecto_sparkles = "https://github.com/bonfire-networks/ecto_sparkles#main"
emote = "https://github.com/bonfire-networks/emote"

View file

@ -1,5 +1,5 @@
FLAVOUR=valueflows
BONFIRE_FLAVOUR=flavours/valueflows
FLAVOUR=coordination
BONFIRE_FLAVOUR=flavours/coordination
# COPY this file to /config/{dev|prod}/public.env and change any values as required
# server domain name:
HOSTNAME=localhost

26
flavours/reflow/README.md Normal file
View file

@ -0,0 +1,26 @@
## Bonfire + ValueFlows
This app is part of the [Bonfire](https://bonfirenetworks.org/) and [ValueFlows](http://valueflo.ws/) ecosystems and bundles the following extensions:
- [Bonfire:Common](https://github.com/bonfire-networks/bonfire_common) - common utils
- [Bonfire:Me](https://github.com/bonfire-networks/bonfire_me) - accounts, user profiles...
- [Bonfire:Social](https://github.com/bonfire-networks/bonfire_social) - feeds, activities, posts, boosting, flagging, etc...
- [Bonfire:UI:Social](https://github.com/bonfire-ecosystem/bonfire_ui_social) - interface for basic social activities
- [Bonfire:Boundaries](https://github.com/bonfire-networks/bonfire_boundaries) - define circles and associated privacy or permissions
- [Bonfire:Federate:ActivityPub](https://github.com/bonfire-networks/bonfire_federate_activitypub) - federates activities with ActivityPub to participate in the fediverse
- [Bonfire:Tag](https://github.com/bonfire-ecosystem/bonfire_tag) - @ mentions, hashtags, and tagging using topics/categories from Bonfire:Classify
- [Bonfire:Classify](https://github.com/bonfire-ecosystem/bonfire_classify) - categories & classifications in taxonomies
- [Bonfire:Geolocate](https://github.com/bonfire-ecosystem/bonfire_geolocate) - places
- [Bonfire:Quantify](https://github.com/bonfire-ecosystem/bonfire_quantify) - units & measures
- [Bonfire:ValueFlows](https://github.com/bonfire-ecosystem/bonfire_valueflows) - economic activities with ValueFlows
- [Bonfire:ValueFlows:Observe](https://github.com/bonfire-ecosystem/bonfire_valueflows_observe) - observation of economic resources
- [Bonfire:API:GraphQL](https://github.com/bonfire-ecosystem/bonfire_api_graphql) - a GraphQL client API
- [Bonfire:UI:ValueFlows](https://github.com/bonfire-networks/bonfire_ui_social) - reusable frontend components for economic activities
- [Bonfire:UI:Reflow](https://github.com/bonfire-networks/bonfire_ui_social) - frontend for the Reflow project
- [Bonfire:BreadPub](https://github.com/bonfire-ecosystem/bonfire_breadpub) - mutual aid, offers/needs, etc
- [Bonfire:RecyclApp](https://github.com/bonfire-ecosystem/bonfire_recyclapp) - ValueFlows-based recycling app
## More information
See the [main docs](../../README.md).

View file

@ -0,0 +1 @@
../../classic/config/activity_pub.exs

View file

@ -0,0 +1 @@
../../classic/config/activity_pub_test.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_api_graphql.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_boundaries.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_classify.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_common.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_data.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_fail.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_federate_activitypub.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_files.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_geolocate.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_hooks.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_mailer.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_me.exs

View file

@ -0,0 +1,6 @@
import Config
config :bonfire_quantify,
templates_path: "lib"
config :bonfire_quantify, Bonfire.Quantify.Units, valid_contexts: [Bonfire.Quantify.Units, Bonfire.Data.Identity.User]

View file

@ -0,0 +1 @@
../../classic/config/bonfire_search.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_social.exs

View file

@ -0,0 +1 @@
../../classic/config/bonfire_tag.exs

View file

@ -0,0 +1,80 @@
import Config
config :bonfire, :ui,
sidebar_components: [
{Bonfire.UI.Reflow.SidebarNavigationLive, []},
{Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Processes", process_url: "/process/"]},
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Task Lists", process_url: "/list/"]}
],
smart_input: [
post: false,
cw: true,
summary: true
],
profile: [
sections: [
timeline: Bonfire.UI.Social.ProfileTimelineLive,
private: Bonfire.UI.Social.PrivateLive,
posts: Bonfire.UI.Social.ProfilePostsLive,
boosts: Bonfire.UI.Social.ProfileBoostsLive,
followers: Bonfire.UI.Social.ProfileFollowersLive,
followed: Bonfire.UI.Social.ProfileFollowersLive,
inventory: Bonfire.UI.Reflow.ProfileInventoryLive,
],
navigation: [
timeline: "timeline",
inventory: "inventory",
# posts: "posts",
# boosts: "boosts",
# private: "private",
],
widgets: [
],
],
smart_input_activities: [
# offer: "Publish an offer",
# need: "Publish a need",
# transfer_resource: "Transfer a resource",
# produce_resource: "Add a resource",
# intent: "Indicate an itent",
# economic_event: "Record an economic event",
# process: "Define a process"
],
smart_input_forms: [
post: Bonfire.UI.Social.CreateActivityLive,
economic_event: Bonfire.UI.ValueFlows.SelectEconomicEventLive,
intent: Bonfire.UI.ValueFlows.CreateIntentLive,
process: Bonfire.UI.ValueFlows.CreateProcessLive,
#offer: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
# need:
transfer_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive,
produce_resource: Bonfire.UI.ValueFlows.CreateOfferWidgetLive
],
resource: [
navigation: [
timeline: "timeline",
material_passport: "material passport",
],
widgets: [
# Bonfire.UI.Social.SubscribeWidgetLive,
Bonfire.UI.ValueFlows.LocationWidgetLive,
Bonfire.UI.Social.HashtagsWidgetLive,
],
]
# process: [
# navigation: [
# events: "Economic events",
# intents: "Intents",
# # material_passport: "material passport",
# ],
# sections: [
# events: Bonfire.UI.ValueFlows.EconomicEventsLive,
# intents: Bonfire.UI.ValueFlows.IntentsLive,
# ],
# widgets: [
# # Bonfire.UI.Social.SubscribeWidgetLive,
# # Bonfire.UI.ValueFlows.LocationWidgetLive,
# # Bonfire.UI.Social.HashtagsWidgetLive,
# ],
# ]

View file

@ -0,0 +1,4 @@
import Config
config :bonfire_valueflows,
valid_agent_schemas: [Bonfire.Data.Identity.User]

View file

@ -0,0 +1 @@
../../classic/config/config.exs

View file

@ -0,0 +1 @@
../../classic/config/deploy

View file

@ -0,0 +1,41 @@
activity_pub = "https://github.com/bonfire-networks/activity_pub#develop"
bonfire_common = "https://github.com/bonfire-networks/bonfire_common#main"
bonfire_data_access_control = "https://github.com/bonfire-networks/bonfire_data_access_control#main"
bonfire_data_activity_pub = "https://github.com/bonfire-networks/bonfire_data_activity_pub#main"
bonfire_data_identity = "https://github.com/bonfire-networks/bonfire_data_identity#main"
bonfire_data_social = "https://github.com/bonfire-networks/bonfire_data_social#main"
bonfire_me = "https://github.com/bonfire-networks/bonfire_me#main"
bonfire_social = "https://github.com/bonfire-networks/bonfire_social#main"
bonfire_mailer = "https://github.com/bonfire-networks/bonfire_mailer#main"
# bonfire_web_phoenix = "https://github.com/bonfire-networks/bonfire_web_phoenix#main"
pointers = "https://github.com/bonfire-networks/pointers#main"
pointers_ulid = "https://github.com/bonfire-networks/pointers_ulid#main"
nodeinfo = "https://github.com/bonfire-networks/nodeinfo#main"
# surface = "https://github.com/bonfire-networks/surface"
bonfire_ui_social = "https://github.com/bonfire-networks/bonfire_ui_social#main"
bonfire_quantify = "https://github.com/bonfire-networks/bonfire_quantify#main"
bonfire_geolocate = "https://github.com/bonfire-networks/bonfire_geolocate#main"
bonfire_valueflows = "https://github.com/bonfire-networks/bonfire_valueflows#main"
bonfire_api_graphql = "https://github.com/bonfire-networks/bonfire_api_graphql#main"
bonfire_ui_valueflows = "https://github.com/bonfire-networks/bonfire_ui_valueflows#main"
bonfire_ui_reflow = "https://github.com/bonfire-networks/bonfire_ui_reflow#main"
# bonfire_ui_coordination = "https://github.com/bonfire-networks/bonfire_ui_coordination#main"
bonfire_breadpub = "https://github.com/bonfire-networks/bonfire_breadpub#main"
# bonfire_recyclapp = "https://github.com/bonfire-networks/bonfire_recyclapp#main"
bonfire_website = "https://github.com/bonfire-networks/bonfire_website#main"
bonfire_tag = "https://github.com/bonfire-networks/bonfire_tag#main"
bonfire_classify = "https://github.com/bonfire-networks/bonfire_classify#main"
# bonfire_taxonomy_seeder = "https://github.com/bonfire-networks/bonfire_taxonomy_seeder#main"
bonfire_search = "https://github.com/bonfire-networks/bonfire_search#main"
bonfire_data_shared_user = "https://github.com/bonfire-networks/bonfire_data_shared_user#main"
bonfire_valueflows_observe = "https://github.com/bonfire-networks/bonfire_valueflows_observe"
absinthe_client = "https://github.com/bonfire-networks/absinthe_client.git#master"
flexto = "https://github.com/bonfire-networks/flexto#support-through"
bonfire_federate_activitypub = "https://github.com/bonfire-networks/bonfire_federate_activitypub#main"
bonfire_boundaries = "https://github.com/bonfire-networks/bonfire_boundaries#main"
bonfire_files = "https://github.com/bonfire-networks/bonfire_files#main"
#twinkle_star = "https://github.com/bonfire-networks/twinkle_star"
voodoo = "https://github.com/bonfire-networks/voodoo#main"
ecto_shorts = "https://github.com/bonfire-networks/ecto_shorts#main"
ecto_sparkles = "https://github.com/bonfire-networks/ecto_sparkles#main"
emote = "https://github.com/bonfire-networks/emote"

View file

@ -0,0 +1,32 @@
# web
phoenix_live_view = "~> 0.14"
phoenix_html = "~> 2.11"
phoenix_live_dashboard = "~> 0.2.0"
plug_cowboy = "~> 2.0"
phoenix = "~> 1.5.3"
phoenix_ecto = "~> 4.1"
gettext = "~> 0.11"
jason = "~> 1.0"
# poison = "~> 4.0"
# db
ecto_sql = "~> 3.4"
flexto = "~> 0.2.2"
postgrex = ">= 0.0.0"
oban = "~> 2.0.0" # job queueing
pointers_ulid = "~> 0.2.2"
pointers = "~> 0.5.1"
# email
bamboo = "~> 1.5"
bamboo_smtp = "~> 3.0.0"
# misc
recase = "~> 0.5" # string recasing
faker = "~> 0.14" # fake data generation
telemetry_metrics = "~> 0.4"
telemetry_poller = "~> 0.4"
ok = "~> 2.3.0"
# Data Schemas
# bonfire_data_access_control = "~> 0.1"
# bonfire_data_activity_pub = "~> 0.1"
# bonfire_data_identity = "~> 0.1"
# bonfire_data_social = "~> 0.1"

View file

@ -0,0 +1 @@
../../classic/config/dev.exs

View file

@ -0,0 +1 @@
../../classic/config/prod.exs

View file

@ -0,0 +1 @@
../../classic/config/runtime.exs

View file

@ -0,0 +1,34 @@
# COPY this file to /config/{dev|prod}/secrets.env and change ALL the values
# make sure you change everything to your own secrets!
# and do not check this into git or any public host
# for sessions/cookies
SECRET_KEY_BASE="you-should-put-a-secure-string-here"
SIGNING_SALT="you-should-put-a-different-secure-string-here"
ENCRYPTION_SALT="you-should-put-yet-another-secure-string-here"
# database access
POSTGRES_USER=postgres
POSTGRES_DB=bonfire_db
POSTGRES_PASSWORD=put_a_secure_db_pw_here
# signup to mailgun.com and edit with your domain and API key
MAIL_DOMAIN=mailg.mydomain.net
MAIL_KEY=123
# password for the search index
MEILI_MASTER_KEY=key-to-protect-search-indexing-here
# password for the default admin user if you run the seeds
SEEDS_USER=root
SEEDS_PW=password
# backend stuff
ERLANG_COOKIE=bonfire_cookie
# Bonfire extensions configs
WEB_PUSH_SUBJECT=mailto:administrator@mydomain.net
WEB_PUSH_PUBLIC_KEY=xyz
WEB_PUSH_PRIVATE_KEY=abc
GEOLOCATE_OPENCAGEDATA=
GITHUB_TOKEN=xyz

View file

@ -0,0 +1,29 @@
FLAVOUR=reflow
BONFIRE_FLAVOUR=flavours/reflow
# COPY this file to /config/{dev|prod}/public.env and change any values as required
# server domain name:
HOSTNAME=localhost
# server port:
PORT=4000
# full backend URL - server protocol + domain name
# include the port if it isn't the default for protocol like 80 or 443
BASE_URL=http://localhost
# hostname and port of meili search index
SEARCH_MEILI_INSTANCE=http://search:7700
# require an email address to be invited before being able to sign up
INVITE_ONLY=true
# a name and tagline for your instance
INSTANCE_DESCRIPTION=An instance of Bonfire, a federated app ecosystem for open and cooperative networks
# uncomment in order to NOT automatically change the database schema when you upgrade the app
# DISABLE_DB_AUTOMIGRATION=true
# max file upload size (default is 20 meg)
UPLOAD_LIMIT=20000000
# ====================================
# You should not have to edit any of the following ones:
APP_NAME=Reflow
POSTGRES_HOST=localhost
LANG=en_US.UTF-8
REPLACE_OS_VARS=true
LIVEVIEW_ENABLED=true
CI=false
ACME_AGREE=true

View file

@ -0,0 +1 @@
../../classic/config/test.exs

Some files were not shown because too many files have changed in this diff Show more