100 Commits
Author SHA1 Message Date
raucao dbf76b64b6 Merge pull request 'Docker Compose dev setup: Garage + automated bootstrap' (#250) from chore/docker-compose-setup into master
CI / Test (push) Successful in 46s
Reviewed-on: #250
Reviewed-by: Greg <greg@kosmos.org>
2026-10-12 19:12:20 +00:00
raucao 8c395ce737 Pin platform for amd64-only Docker services
CI / Test (pull_request) Successful in 45s
Release Drafter / Update release notes draft (pull_request) Successful in 10s
2026-10-12 15:33:42 +02:00
raucao 2093f67a64 Merge pull request 'Allow remote access to dev services' (#253) from dev/remote_access into chore/docker-compose-setup
CI / Test (pull_request) Successful in 45s
Reviewed-on: #253
2026-10-06 17:37:49 +00:00
raucao 695977172f Fix Liquor Cabinet performance in dev
CI / Test (pull_request) Failing after 46s
Can't handle enough requests without ThreadPool, so once you hit the
limit, requests take 5s+ (having to wait for the keepalive timeout)
2026-10-06 19:36:26 +02:00
raucao bc37df52a0 Allow remote access to dev services
CI / Test (pull_request) Successful in 46s
Release Drafter / Update release notes draft (pull_request) Successful in 19s
2026-10-06 19:34:24 +02:00
raucao 6279699c11 Switch dev object storage from MinIO to Garage
CI / Test (pull_request) Successful in 43s
MinIO no longer publishes prebuilt community images (quay.io returns
401, Docker Hub 404), so the dev setup cannot pull the image.

Use a single-node Garage instance instead, which auto-creates the
remotestorage bucket and a dev-key1 access key on first start, and
point liquor-cabinet at it.
2026-10-06 13:52:38 +00:00
raucao 0d9c580a0a Automate first-run LDAP and database setup
The documented flow started web (with Solid Queue in Puma) before the
databases existed, and required manually creating the 389ds back-end
and seeding the LDAP directory and databases. Automate it:

- add an ldap-init one-shot service that creates the 389ds back-end if
  it does not exist
- add a web entrypoint that seeds LDAP and the databases on first start,
  and runs db:prepare on later boots
- update README and AGENTS accordingly, including the reset steps
2026-10-06 13:52:38 +00:00
raucao 49c2c9feea Merge pull request 'Gate remoteStorage by serviceEnabled instead of Flipper' (#251) from bugfix/remotestorage-service-enabled into master
CI / Test (push) Failing after 41s
Reviewed-on: #251
2026-10-06 13:52:17 +00:00
raucao 465563d6a6 Merge pull request 'Fix db seeds for Solid Queue' (#249) from fix/seeds-active-job into master
CI / Test (push) Successful in 43s
Reviewed-on: #249
2026-10-06 13:38:20 +00:00
raucao 911d2a5855 Fix db seeds for Solid Queue
CI / Test (pull_request) Successful in 45s
Release Drafter / Update release notes draft (pull_request) Successful in 3s
db/seeds.rb still required "sidekiq/testing" and wrapped seeding in
Sidekiq::Testing.inline!, but Sidekiq is no longer in the bundle after
the Solid Queue migration, so `rails db:setup` failed with a LoadError.

Run the jobs triggered while seeding inline via Active Job instead,
restoring the previous behavior with the adapter the app actually uses.
2026-10-06 13:36:33 +00:00
raucao d8bba02636 Merge pull request 'Stabilize flaky remoteStorage Redis spec' (#252) from bugfix/rs-redis-spec-stabilization into master
CI / Test (push) Failing after 44s
Reviewed-on: #252
2026-10-06 13:36:20 +00:00
raucao 2419982ef5 Stabilize flaky remoteStorage Redis spec
CI / Test (pull_request) Successful in 42s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
"stores a token in redis" asserted an exact count of Redis keys for the
user, but database cleanup only covers SQL and Redis keys accumulate
across examples and spec files. It also relied on a previously-run
example having created the authorization, so it failed depending on test
order and leftover state.

Clear the authorizations:* namespace before each example in the #create
group, create the authorization under test, and assert on its specific
token key instead of a global count.
2026-10-06 15:33:04 +02:00
raucao 8fae099c12 Gate remoteStorage by serviceEnabled instead of Flipper
CI / Test (pull_request) Successful in 2m4s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
The admin "Default services" setting writes the LDAP serviceEnabled
attribute, but remoteStorage access was also gated behind an unused
per-user Flipper flag that nothing ever enabled, so remoteStorage was
inaccessible for everyone.

Gate remoteStorage on service_enabled? like the other services, and make
the admin toggle reflect the LDAP attribute (this also fixes it reading
current_user instead of the user being viewed). E-Mail keeps its Flipper
gate for now.
2026-10-06 15:10:00 +02:00
raucao 4536b6505c 0.11.1
CI / Test (push) Successful in 33s
2026-08-10 21:53:49 -06:00
raucao 8453c38f41 Merge pull request 'Fix avatars failing to be set on ejabberd accounts' (#247) from bugfix/246-xmpp_avatar_publishing into master
CI / Test (push) Successful in 31s
Reviewed-on: #247
2026-08-11 03:37:28 +00:00
raucao 1957df3bbd Fix avatars failing to be set on XMPP accounts
CI / Test (pull_request) Successful in 32s
Release Drafter / Update release notes draft (pull_request) Successful in 3s
There's a stray `end` that prematurely closes the class
2026-08-10 21:35:28 -06:00
raucao d196c161df Force-shutdown Puma if necessary
CI / Test (push) Successful in 31s
Do it before the systemd service's timeout is reached
2026-08-10 17:24:08 -06:00
raucao 44b5a0b36b Merge pull request 'Upgrade Rails to 8.1' (#245) from chore/upgrade_rails into master
CI / Test (push) Successful in 32s
Reviewed-on: #245
2026-08-10 23:11:28 +00:00
raucao 5ebf496096 Upgrade Rails to 8.1
CI / Test (pull_request) Successful in 1m4s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2026-08-10 17:02:37 -06:00
raucao 7a63c87b03 Fix deprecation warning 2026-08-10 17:02:20 -06:00
raucao 6cc35f07eb Remove more obsolete Devise code
The initializer was a no-op override after our Devise upgrade
2026-08-10 17:01:36 -06:00
raucao 89423ecf84 Merge pull request 'Upgrade Devise to 5.0, remove obsolete workarounds' (#244) from chore/upgrade_devise into master
CI / Test (push) Successful in 31s
Reviewed-on: #244
2026-08-10 22:40:47 +00:00
raucao c79c421b89 Fix Devise Turbo Stream responses for flash messages
CI / Test (pull_request) Successful in 33s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
Wire Users::DeviseController as Devise parent controller with the
Turbo-aware responder, so failed form submissions (login, password
reset) render correctly as HTML with 422 status instead of
unprocessable turbo-stream content that Turbo silently drops.

Also fixes a NameError in the responder (rendering_options ->
error_rendering_options) and removes the dead TurboController.
2026-08-10 16:37:01 -06:00
raucao 8a8d407bcc Add missing whitespace between Devise (sign-in) errors and forms
CI / Test (pull_request) Successful in 32s
2026-08-10 15:17:43 -06:00
raucao 045df94c29 Upgrade Devise to 5.0, remove workarounds
CI / Test (pull_request) Successful in 52s
2026-08-10 15:15:27 -06:00
raucao 0c667795a7 0.11.0
CI / Test (push) Successful in 33s
2026-08-10 14:43:42 -06:00
raucao 89184cd851 Redirect to root after password reset
CI / Test (pull_request) Successful in 32s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2026-08-10 11:22:03 -06:00
raucao 29a9dee1cb Consume user_return_to on sign-in 2026-08-10 11:21:59 -06:00
raucao a62d84e20a Validate rs/oauth redirect_uri before storing return URL 2026-08-10 11:21:33 -06:00
raucao 7a892fad4e Add AGENTS.md
CI / Test (push) Successful in 32s
2026-08-10 11:01:21 -06:00
raucao d60d211765 Merge pull request 'Admin users page: filter by username' (#242) from feature/admin_user_search into master
CI / Test (push) Successful in 34s
Reviewed-on: #242
2026-08-10 16:40:32 +00:00
raucao d58c995230 Admin users page: filter by username
CI / Test (pull_request) Successful in 33s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
Allow admins to filter the user list/index by username (partial matches
allowed)
2026-08-10 10:36:05 -06:00
raucao 9c143bc8d6 Merge pull request 'Switch from Yarn to Bun; use Ruby 3.3.12' (#241) from dev/yarn_to_bun into master
CI / Test (push) Successful in 33s
Reviewed-on: #241
2026-08-10 00:50:19 +00:00
raucao 0d476c8a8b Re-add Node.js for CI actions
CI / Test (pull_request) Successful in 34s
Release Drafter / Update release notes draft (pull_request) Successful in 3s
2026-08-09 18:24:28 -06:00
raucao 31341fb4ce Upgrade Ruby to 3.3.12 everywhere
CI / Test (pull_request) Failing after 2s
2026-08-09 18:13:31 -06:00
raucao 39d9f9b312 Migrate everything from Yarn to Bun
No node.js or npm necessary anymore
2026-08-09 18:13:26 -06:00
raucao 8a6e733316 Merge pull request 'Show links for log-in, ToS, and Privacy Policy when logged out' (#240) from chore/login_links into master
CI / Test (push) Successful in 44s
Reviewed-on: #240
2026-08-09 20:13:39 +00:00
raucao 9f25b23e2e Show ToS and Privacy Policy links when logged out
CI / Test (pull_request) Successful in 41s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2026-08-09 14:10:25 -06:00
raucao 6a32dd5ee9 Show log-in link in header when logged out
Except on the login page itself
2026-08-09 14:10:00 -06:00
raucao b93ddd9dbd Merge pull request 'Add additional styles for rich text' (#239) from feature/rich-text into master
CI / Test (push) Successful in 41s
Reviewed-on: #239
2026-08-09 19:05:33 +00:00
raucao 7e7892df7a Fail CI if CSS wasn't built for any reason
CI / Test (pull_request) Successful in 40s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2026-08-09 13:03:02 -06:00
raucao aff9e534c4 Upgrade Tailwind CSS 2026-08-09 13:02:27 -06:00
raucao 5f6269204b Add auth token config for Release Drafter 2026-08-09 11:54:35 -06:00
raucao b44b689caf Additional styles for rich text
CI / Test (pull_request) Failing after 40s
Especially for editable content
2026-08-09 11:42:41 -06:00
raucao da69cb4ad0 Cache gems in CI
CI / Test (pull_request) Successful in 41s
Release Drafter / Update release notes draft (pull_request) Failing after 2s
2026-08-08 08:36:39 -06:00
raucao 139d543e4f Remove bun from script
CI / Test (pull_request) Successful in 2m11s
2026-08-08 08:15:24 -06:00
raucao 744cc7d7dd Migrate from Drone CI to Gitea Actions
CI / Test (pull_request) Failing after 2m14s
2026-08-08 08:08:57 -06:00
raucao 8f1fadc74a Point tailwind command at module executable
continuous-integration/drone/push Build is failing
2026-08-07 12:38:09 -06:00
raucao e7527a1def Merge pull request 'Allow anyone to publish NIP-46 events' (#236) from feature/nostr_allow_public_bunker_events into master
continuous-integration/drone/push Build is passing
Reviewed-on: #236
2026-08-07 18:29:42 +00:00
raucao 0d248ead04 Allow anyone to publish NIP-46 events
Release Drafter / Update release notes draft (pull_request) Failing after 3s
This turns our relay into a public remote-sign-in relay
2026-08-07 11:03:31 -06:00
raucao 3bd07472b2 Fix pages views when signed out
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2025-06-12 16:09:42 +04:00
raucao 32b1c2748a Fix wrong variable
continuous-integration/drone/push Build is passing
2025-05-30 20:22:04 +04:00
raucao fc6cac8368 Remove superfluous link
continuous-integration/drone/push Build is passing
Already linked in the same paragraph
2025-05-30 16:53:05 +04:00
raucao f2e8ca790c Add Privacy and ToS pages, footer menu
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 3s
2025-05-30 13:27:15 +04:00
raucao 32cd4d896d Fix link color for Devise links
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-29 17:26:18 +04:00
raucao 67c450860a Fix tab links
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-29 16:24:33 +04:00
raucao f1d9cf1e3d Remove special link class
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
This cleans up the code quite a bit, but also allows links in editable
content to be rendered with the default style.
2025-05-29 16:10:34 +04:00
raucao ab1490f472 Remove Kosmos name from wording
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
refs #222
2025-05-29 14:24:43 +04:00
raucao 6014134396 Finish MVP for content editing 2025-05-29 14:18:14 +04:00
raucao 6713665a61 WIP Rename "projects" page, make content editable
continuous-integration/drone/push Build is failing
2025-05-28 18:42:10 +04:00
raucao 315cf4dd9f Add editable content helpers 2025-05-28 18:41:53 +04:00
raucao 2f86b3c16f Add admin/editable_contents controller 2025-05-28 18:40:54 +04:00
raucao 55c63be9e2 Memoize instance variable 2025-05-28 18:39:48 +04:00
raucao 5c8ffc2630 Add editable contents table 2025-05-28 18:39:25 +04:00
raucao c7a21c7a69 Add top margin to h3 within content 2025-05-28 18:37:59 +04:00
raucao 252b0f1792 Revert "Add ActionText configs, update spec helpers/configs"
This reverts commit c9d23f829d.
2025-05-28 16:53:31 +04:00
raucao 57246ea76d Fix navbar current link 2025-05-28 15:35:57 +04:00
raucao c9d23f829d Add ActionText configs, update spec helpers/configs 2025-05-28 14:52:31 +04:00
raucao 55111f1b8b Allow using icons without custom class
continuous-integration/drone/push Build is passing
2025-05-28 14:50:59 +04:00
raucao 4c6e64095f Fix unused invitations count
continuous-integration/drone/push Build is failing
2025-05-28 14:28:59 +04:00
raucao 450ccff65b Add custom class to all remaining icons
continuous-integration/drone/push Build is failing
2025-05-28 13:57:01 +04:00
raucao 0dcfefd66c Merge pull request 'Improve admin pages for invitations' (#228) from feature/admin_invitations into feature/contributor_status
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
Reviewed-on: #228
Reviewed-by: Greg <greg@noreply.kosmos.org>
2025-05-28 09:00:11 +00:00
raucao c6a187b25a Limit invitees on admin user page, link to invitations for more
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 4s
2025-05-28 12:50:10 +04:00
raucao c99d8545c1 Add username filter to admin invitations index
continuous-integration/drone/push Build is passing
2025-05-28 12:34:52 +04:00
raucao e8f912360b Fix wrong stats number
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-28 12:11:26 +04:00
raucao c94a0e34d1 Add donations to user details, link to filtered list
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-27 19:04:35 +04:00
raucao 04094efbdb Add username filter with UI to admin donations page 2025-05-27 18:43:45 +04:00
raucao 71352d13d2 Add pending donations to admin donations index
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
And add more info to the details page
2025-05-27 18:08:22 +04:00
raucao fff7527694 Don't show njump link when no pubkey set 2025-05-27 17:35:48 +04:00
raucao 7a8ca0707a Add missing dash for no member status
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-27 17:18:47 +04:00
raucao b657a25d4d Wording 2025-05-27 17:16:26 +04:00
raucao e48132cf5f Set member status to sustainer upon payment
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Introduces a state machine for the payment status as well.

refs #213
2025-05-27 16:39:03 +04:00
raucao 463bf34cdf Add link for icon library to README
continuous-integration/drone/push Build is passing
2025-05-27 15:12:31 +04:00
raucao f313686b13 Add settings for member statuses
continuous-integration/drone/push Build is passing
2025-05-27 14:59:10 +04:00
raucao 0b4bc4ef5c Improve color shade of sidebar link icon
Was a bit bright
2025-05-27 14:58:45 +04:00
raucao 393f85e45c WIP Add member/contributor status to users
continuous-integration/drone/push Build is passing
2025-05-27 13:32:58 +04:00
raucao d737d9f6b8 Refactor ejabberd API integration
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2025-05-26 14:10:27 +04:00
raucao 4bf6985b87 Fix wrong matcher for custom LDAP attribute
continuous-integration/drone/push Build is passing
389ds doesn't like case-insensitive matches for 7-bit ASCII strings
2025-05-23 14:08:41 +04:00
raucao 7f766473ab Fix typo
continuous-integration/drone/push Build is passing
2025-05-22 13:21:37 +04:00
raucao c1bac2625c Only log exception to stdout
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2025-05-21 16:42:49 +04:00
raucao c5c6765d67 Log LDAP exceptions
continuous-integration/drone/push Build is passing
2025-05-21 16:29:52 +04:00
raucao 171524fb83 Use production link
continuous-integration/drone/push Build is passing
2025-05-18 14:58:55 +04:00
raucao 3538067da6 Use production link
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2025-05-18 14:58:34 +04:00
raucao c374bcd3bc Merge branch 'master' into feature/mastodon_api
continuous-integration/drone/push Build is running
2025-05-18 14:56:42 +04:00
raucao 655009ad7a Add example link for PGP pubkey
continuous-integration/drone/push Build is running
2025-05-18 14:56:29 +04:00
raucao 71c9bd29ab Merge branch 'master' into feature/mastodon_api 2025-05-18 14:46:28 +04:00
raucao e66d134550 Log missing l param for WKD requests, return 400
continuous-integration/drone/push Build is passing
2025-05-18 14:46:04 +04:00
raucao 11167e3e43 Merge branch 'master' into feature/mastodon_api 2025-05-18 14:37:47 +04:00
raucao ebbd87368c Handle l param missing for WKD request
continuous-integration/drone/push Build is passing
2025-05-18 14:37:22 +04:00
raucao 7b0ebb761f Allow display name to be removed
continuous-integration/drone/push Build is passing
When form field is empty
2025-05-18 14:26:09 +04:00