Documentation hosting app, that just works. Including auth through LDAP, OAuth2 or built-in and full-text search in all docs. https://git.mmo.to/qwc-open/asiakirjat
  • Go 80.7%
  • HTML 9.8%
  • JavaScript 6.7%
  • CSS 2.7%
  • Dockerfile 0.1%
Find a file
qwc 608494fa88
All checks were successful
CI / test (push) Successful in 55s
CI / build (push) Successful in 41s
CI / docker (push) Successful in 1m14s
Merge pull request 'Add opt-in recursive LDAP group resolution' (#75) from feature/ldap-recursive-groups into main
Reviewed-on: #75
2026-02-17 10:47:29 +01:00
.forgejo/workflows Add arm64 release binary to release workflow 2026-02-16 16:46:48 +00:00
cmd/gen-licenses Show license abbreviation and fix footer layout 2026-02-04 18:44:31 +00:00
internal Add opt-in recursive LDAP group resolution 2026-02-17 09:44:52 +00:00
static Add diff navigation and state persistence to document overlay 2026-02-16 16:26:47 +00:00
vendor Enable goldmark table extension for built-in docs 2026-02-04 05:46:06 +00:00
.dockerignore Phase 11: Docker + Production Polish + CI/CD 2026-02-02 19:40:50 +00:00
.gitignore Remove accidentally committed files, update .gitignore 2026-02-04 13:10:34 +00:00
CLAUDE.md Update project docs for CI/CD pipeline 2026-02-04 07:13:26 +00:00
config.yaml.example Add proxy_strip_path option for reverse proxy deployments 2026-02-05 14:57:46 +00:00
docker-compose.yml Phase 11: Docker + Production Polish + CI/CD 2026-02-02 19:40:50 +00:00
Dockerfile Add release pipeline with deploy trigger 2026-02-04 07:06:43 +00:00
go.mod Use raw app name on licenses page and fix go.mod version 2026-02-05 06:33:31 +00:00
go.sum Add support for .tar.xz and .7z archive formats 2026-02-03 06:02:54 +00:00
LICENSE Add GPLv3 license 2026-02-04 07:22:18 +00:00
main.go Merge pull request 'Add open source licenses page' (#46) from feature/licenses-page into main 2026-02-04 19:48:00 +01:00
readme.md Add features list to readme 2026-02-04 13:21:00 +00:00

asiakirjat

What does the word mean?

It is finnish (Suomi) and means "documents" or "documentation".

What is the purpose of this application?

Serve HTML documentation with user management, authorization and authentication.

Backends for user management shall be:

  • built-in
  • LDAP
  • oauth2

Documentation blobs can be uploaded as archives (whatever format), versioned with version tags for multiple projects.

A stretch-goal is that you can search through all documentations stored, not only by title, but in the content.

Features

  • Multi-project hosting with slug-based URLs and per-project versioning
  • Three-tier visibility: public (anonymous), private (global access list), custom (per-project grants)
  • Authentication: built-in (bcrypt), LDAP, OAuth2/OIDC — used simultaneously
  • Role-based access: admin, editor, viewer at global and per-project level
  • Group mapping: LDAP/OAuth2 groups to project access and global access roles
  • Full-text search (Bleve) across all documentation with project/version filtering
  • Archive upload: .zip, .tar.gz, .tgz, .tar.bz2, .tbz2, .tar.xz, .txz, .7z
  • REST API with Bearer token auth: project listing, version listing, upload, search
  • Robot users: API-only accounts with project-scoped tokens for CI/CD
  • Multi-database: SQLite (default), PostgreSQL, MySQL with auto-migrations
  • Admin panel: manage projects, users, robots, group mappings, search reindex
  • Branding: custom app name, logo, CSS
  • Self-documenting: deployable built-in documentation
  • Single binary, Docker-ready

AI Policy

Author Statement

Yes. I used AI to almost vibe-code this application.

Why? I am a single person with limited time - family, other hobbies, ... I do not have the time to write all by my own hands, despite the fact that I would love to.

I use AI responsibly. I do understand that sentence like, that I use AI almost only in my own field of expertise, so that I can actually continue also without AI, if the need arises, the AI systems fail or vanish or the world goes down the drain.

AI coding buys me time and gets my software ideas faster into reality, I see it as benefit as a tool for programming creativity.

AI Policy for contributions

Yes you may use AI to contribute.

If you follow these two rules:

  • Always mark your commits + PRs that you created the code with the help of AI as your wingman
  • Make commits in a size a human can still review within minutes.
    • Max ~250 changed lines per commit
    • If your contribution is larger, instruct your AI to commit the work in as much bite-sized commits as necessary, so that you, yourself, can still follow, what is changed.

Because the reviewer of the PRs will still be a human, who wants to understand what's going on.