Skip to content

Add Seafile app with optional SeaDoc#4993

Draft
mreid-tt wants to merge 19 commits into
truenas:masterfrom
mreid-tt:seafile-app
Draft

Add Seafile app with optional SeaDoc#4993
mreid-tt wants to merge 19 commits into
truenas:masterfrom
mreid-tt:seafile-app

Conversation

@mreid-tt
Copy link
Copy Markdown
Contributor

@mreid-tt mreid-tt commented May 16, 2026

App Addition

  • I have opened an issue to discuss this app addition before submitting this pull request.

AI

  • Part or All of this PR was generated by an LLM.

Description

Adds Seafile to the community train.

Seafile is an open source cloud storage system with privacy preservation and teamwork features. This package includes:

  • Core Seafile server (seafileltd/seafile-mc:13.0-latest) with MariaDB and Redis
  • Caddy reverse proxy (caddy:2-alpine) with optional TrueNAS certificate support for HTTPS
  • Optional SeaDoc server (seafileltd/sdoc-server:2.0-latest) for collaborative document editing

App Information

Testing

Tested locally with:

  • basic-values.yaml
  • seadoc-enabled.yaml
  • all-features-enabled.yaml
  • custom-storage.yaml
  • https-values.yaml

All tests passed successfully (render and deployment).

Icons and Screenshots

Please upload the following to the CDN:

Special Notes

  • The seafile-mc image uses baseimage-docker's my_init as PID 1, which requires root. The container runs as root; the init system drops privileges for seafile processes internally.
  • Requires SETUID/SETGID capabilities for nginx worker processes. Applied via cap_add since the library defaults to cap_drop: [ALL].
  • SeaDoc server is conditional — when enable_seadoc is true, the sdoc-server container is deployed alongside seafile.
  • Caddy uses standard caddy:2-alpine with a static Caddyfile injected via Docker configs (not caddy-docker-proxy, avoiding Docker socket dependency).
  • HTTPS via TrueNAS certificate manager — selecting a certificate enables TLS on a separate HTTPS port with HTTP to HTTPS redirect.
  • Tested on Ubuntu 22.04 VM with Docker Compose. All five test configurations deployed successfully with web UI accessible.

Checklist

  • App runs successfully locally
  • Only modified files under /ix-dev/ or /library/
  • README.md included
  • Multiple test scenarios tested (5 test files)
  • questions.yaml has clear descriptions and follows structure of existing apps
  • All automated CI checks pass

@mreid-tt mreid-tt changed the title feat: add Seafile 13 app with Caddy reverse proxy and optional SeaDoc Add Seafile app with optional SeaDoc May 16, 2026
mreid-tt added 11 commits May 16, 2026 12:53
- Rename MariaDB vars: db -> mariadb_container, db_image -> mariadb_image
- Run Caddy as non-root with NET_BIND_SERVICE, enable healthcheck
- Use db_user/db_name consts instead of hardcoded values
- Fix redis dependency: service_started -> service_healthy
- Add additional_storage question with full host_path/ix_volume/cifs/nfs support
- Add Labels Configuration group and question
- Add acl_entries + acl blocks to all storage questions
- Add notes_body const with post-install credentials note
- Remove inconsistent auto_permissions from db_data/redis_data
- Fix Memory label to (in MB), trim README to 3 lines
- Fix redis run_as_context description
- Normalize host_ips in test values, ensure trailing newlines
- User enters bare hostname (no port), port appended automatically
- Only appends :port when non-standard (not 80/443)
- Also feeds into SeaDoc URL and extra_hosts
- Add TCP healthcheck to seadoc container
- seadoc always runs on the same server behind Caddy
- No need for user-configurable seadoc_server_url override
- Match upstream behavior of always auto-constructing the URL
@stavros-k stavros-k marked this pull request as draft May 18, 2026 16:20
@mreid-tt
Copy link
Copy Markdown
Contributor Author

Hey @stavros-k, hope you’re doing well. If there are any recommended changes or suggested next steps, please let me know. I’m very eager to help get this into the catalog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant