2026-02-27 16:21:51 +01:00
2026-04-07 17:57:43 +02:00
2026-02-27 16:21:51 +01:00
2026-04-09 17:58:55 +02:00
2026-02-27 16:21:51 +01:00
2026-04-09 16:50:57 +02:00
2026-02-27 16:21:51 +01:00
2026-04-10 08:58:47 +02:00
2026-03-10 18:09:46 +00:00

timeoverflow

Warning

This is an extremely experimental recipe configuration. Due to coopdevs/timeoverflow#824, there is no official upstream image and we are building our own. However, this building process includes specific hacks to support platform.tijdbank.org. Please raise an issue first if you want to make use of this recipe for another deployment!

A time banking system

  • Category: Apps
  • Status: 0
  • Image: timeoverflow, 4, coop-cloud-chaos-patches
  • Healthcheck: No
  • Backups: No
  • Email: No
  • Tests: No
  • SSO: No

Quick start

  • abra app new timeoverflow --secrets
  • abra app config <app-name>
  • abra app deploy <app-name>

For more, see docs.coopcloud.tech.

Initial setup

  • abra app cmd <app> app createdb
    • Please note: the app service will not deploy successfully until you do this
  • Adjust the local storage permissions
  • Initialise the initial data via abra app cmd <app> app console (source)
    • WARNING: ensure you replace admin@timeoverflow.org with your ADMINS value in the .env. Otherwise, you won't have access the Rails web admin in /admin.
Organization.find_or_create_by(name: "My timebank")

User.find_or_create_by(email: "admin@timeoverflow.org") do |user|
  user.terms_accepted_at = DateTime.now.utc
  user.confirmed_at = DateTime.now.utc
  user.password = "1234test"
  user.password_confirmation = "1234test"
  user.username = "admin"
  user.date_of_birth = Date.parse("1982-10-12")
  user.description = "Administrator"
end

User.find_by(email: "admin@timeoverflow.org").members.
  find_or_create_by(organization_id: 1) do |member|
  member.manager = true
  member.entry_date = DateTime.now.utc
end

Document.find_or_create_by(label: "t&c") do |doc|
  doc.title = "Terms of service"
  doc.content = "Please fill in."
end

unless Category.exists?
  Category.connection.execute "ALTER SEQUENCE categories_id_seq RESTART;"
  [
    "Companionship", "Health", "Household chores", "Administrative tasks",
    "Beauty", "Classes", "Leisure", "Advice", "Other", "Loan of tools,
    materials, books, ...", "Household chores"
  ].each do |name|
	unless Category.with_name_translation(name).exists?
	  Category.create { |c| c.name = name }
	end
  end
end
Description
A time banking system
Readme 71 KiB
Languages
Shell 100%