|
1 | 1 | <!-- |
2 | | - - SPDX-FileCopyrightText: 2020-2024 LibreCode coop and contributors |
| 2 | + - SPDX-FileCopyrightText: 2020-2026 LibreCode coop and contributors |
3 | 3 | - SPDX-License-Identifier: AGPL-3.0-or-later |
4 | 4 | --> |
5 | 5 |  |
|
8 | 8 | [](https://api.reuse.software/info/github.com/LibreSign/libresign) |
9 | 9 | [](https://github.com/LibreSign/libresign/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22) |
10 | 10 |
|
11 | | -# LibreSign for Nextcloud |
| 11 | +# LibreSign |
12 | 12 |
|
13 | | -LibreSign is a digital signature application for Nextcloud that enables secure document signing workflows directly within your self-hosted environment. |
| 13 | +Control how your documents get signed |
14 | 14 |
|
15 | | -It supports internal and external signers, certificate-based signatures, and full document lifecycle management. |
| 15 | +LibreSign helps you control how document signing works in your organization. |
| 16 | +Organizations use it with Nextcloud to run signing workflows that match internal rules, legal requirements, and daily processes. |
| 17 | +It gives teams clear visibility into who signed, when they signed, and how each request moved through the process. |
16 | 18 |
|
17 | | -## Why LibreSign? |
| 19 | +## Key features |
18 | 20 |
|
19 | | -- Fully self-hosted digital signature solution |
20 | | -- Integrated with Nextcloud ecosystem |
21 | | -- Supports internal and external signers |
22 | | -- Open source (AGPL-3.0) |
23 | | -- Extensible API |
| 21 | +- Define signing order, roles, and rules per document flow |
| 22 | +- Include internal and external signers in the same request |
| 23 | +- Keep a traceable record of requests, actions, and validations |
| 24 | +- Work directly with Nextcloud files, users, and sharing context |
| 25 | +- Configure certificates and identity options to match your signing process |
| 26 | +- Connect signing processes to other systems through API endpoints |
24 | 27 |
|
25 | | ---- |
26 | | -## Quick Links |
| 28 | +## Why LibreSign |
27 | 29 |
|
28 | | -- 📖 [Full Documentation](https://github.com/LibreSign/documentation) |
29 | | -- 🐛 [Report a bug](https://github.com/LibreSign/libresign/issues/new?template=bug_report.yml) |
30 | | -- 💡 [Request a feature](https://github.com/LibreSign/libresign/issues/new?template=feature_request.yml) |
31 | | -- 🌍 [Translations (Transifex)](https://app.transifex.com/nextcloud/nextcloud/libresign) |
32 | | ---- |
| 30 | +LibreSign is for teams where signing is part of a controlled business process. |
33 | 31 |
|
34 | | -## Who is this for? |
35 | | - |
36 | | -- 🛠 Nextcloud administrators who want to deploy a digital signature solution |
37 | | -- 👤 End users who need to sign or request signatures on documents |
38 | | -- 🏢 Organizations looking for a self-hosted signature workflow |
39 | | - |
40 | | ---- |
41 | | - |
42 | | -## Documentation |
43 | | - |
44 | | -Complete guides are available for: |
45 | | - |
46 | | -- 🔧 Administrators (installation, configuration, certificates) |
47 | | -- 👥 Users (how to request and sign documents) |
48 | | -- 🧪 Developers (architecture and API) |
49 | | - |
50 | | -👉 https://github.com/LibreSign/documentation |
51 | | - |
52 | | ---- |
53 | | - |
54 | | -## Installation |
55 | | - |
56 | | -LibreSign can be installed from the Nextcloud App Store or manually. |
57 | | - |
58 | | -After enabling the app, administrators must install required standalone dependencies and configure certificates. |
59 | | - |
60 | | -### 1️⃣ Install dependencies |
61 | | -Run the following command as your web server user: |
62 | | -`occ libresign:install --java --pdftk --jsignpdf` |
63 | | - |
64 | | -This will install: |
65 | | -- Java (standalone JRE) |
66 | | -- PDFtk |
67 | | -- JSignPdf |
68 | | - |
69 | | -All binaries are installed inside the Nextcloud `data/appdata_*/libresign` directory. |
70 | | -No system-wide installation is required. |
71 | | - |
72 | | -### 2️⃣ Verify installation |
73 | | -`sudo -u www-data php /path/to/nextcloud/occ libresign:configure:check` |
74 | | - |
75 | | -This command verifies: |
76 | | -- Java availability |
77 | | -- PDFtk setup |
78 | | -- JSignPdf setup |
79 | | -- OpenSSL configuration |
80 | | -- Certificate environment |
81 | | - |
82 | | -### 3️⃣ Configure root certificate |
83 | | -You can generate a certificate using OpenSSL or CFSSL. |
84 | | - |
85 | | -Example using OpenSSL: |
86 | | -`sudo -u www-data php /path/to/nextcloud/occ libresign:configure:openssl --cn="Your Organization - Digital Signature" --o="Your Organization" --c="FR" --st="Region" --l="City"` |
87 | | - |
88 | | -Certificates are generated and stored inside the Nextcloud data directory: `nextcloud_data_dir/appdata_*/libresign` |
89 | | - |
90 | | -No additional server-level configuration is required. |
91 | | - |
92 | | -📖 For full configuration details, advanced setups, and troubleshooting: |
93 | | -https://github.com/LibreSign/documentation |
94 | | - |
95 | | ---- |
96 | | - |
97 | | - |
98 | | -LibreSign runs entirely inside your Nextcloud environment. |
99 | | - |
100 | | -All cryptographic operations are self-contained and executed server-side. No external services are required and no document data leaves your infrastructure. |
101 | | - |
102 | | -LibreSign manages its own internal Certificate Authority (CA), ensuring full control over keys, signatures and alignment with data protection regulations. |
103 | | - |
104 | | ---- |
105 | | - |
106 | | -## How it works |
107 | | - |
108 | | -1. A user uploads a document. |
109 | | -2. The user defines signers (internal or external). |
110 | | -3. Signers receive a notification or link. |
111 | | -4. The document is signed and stored in Nextcloud. |
112 | | -5. Signature validation and certificate verification are performed automatically. |
113 | | ---- |
114 | | - |
115 | | -### Additional dependencies: |
116 | | -- poppler-utils |
117 | | -- System locale configured with UTF-8 charset |
118 | | - |
119 | | ---- |
120 | | - |
121 | | -## Integrations |
122 | | - |
123 | | -* [GLPI](https://github.com/LibreSign/libresign-glpi): Plugin to sign GLPI tickets |
124 | | -* [Approval](https://github.com/nextcloud/approval): Approve/reject files based on workflows defined by admins |
125 | | - |
126 | | ---- |
127 | | - |
128 | | -## API Documentation |
129 | | - |
130 | | -Developer manual: https://docs.libresign.coop/developer_manual/ |
131 | | - |
132 | | ---- |
133 | | - |
134 | | -## Security |
135 | | - |
136 | | -LibreSign uses certificate-based digital signatures built on a private PKI managed within your Nextcloud environment. |
137 | | - |
138 | | -It supports certificate revocation (CRL), trusted time-stamping (TSA), and document certification levels (DocMDP), ensuring integrity, authenticity and long-term validation of signed documents. |
139 | | - |
140 | | -All cryptographic operations are performed server-side and remain under your infrastructure control. |
141 | | - |
142 | | -For responsible disclosure and security policy, please see [SECURITY.md](SECURITY.md). |
143 | | - |
144 | | ---- |
| 32 | +- Define clear signing rules by role, stage, or document type |
| 33 | +- Keep traceability for audits, legal checks, and internal reviews |
| 34 | +- Align signing with existing approval and governance processes |
| 35 | +- Adapt workflows to how your organization works instead of following fixed external models |
145 | 36 |
|
146 | 37 | ## Contributing |
147 | 38 |
|
148 | | -LibreSign is an open source project and welcomes contributions. |
| 39 | +Contributions are welcome from developers, implementers, and teams that use LibreSign in production. |
149 | 40 |
|
150 | | -You can contribute by: |
| 41 | +- Report bugs and suggest improvements: https://github.com/LibreSign/libresign/issues |
| 42 | +- Start with good first issues: https://github.com/LibreSign/libresign/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 |
| 43 | +- Read contribution guidelines: CONTRIBUTING.md |
| 44 | +- Help with translations: https://app.transifex.com/nextcloud/nextcloud/libresign |
151 | 45 |
|
152 | | -- Opening issues for bugs and feature requests |
153 | | -- Contributing code improvements |
154 | | -- Improving translations on [Transifex](https://app.transifex.com/nextcloud/nextcloud/libresign) |
155 | | -- Contributing to the [documentation repository](https://github.com/LibreSign/documentation) |
156 | | -- Supporting the project via [GitHub Sponsors](https://github.com/sponsors/LibreSign) |
| 46 | +## Contributors |
157 | 47 |
|
158 | | -See our [Contributing Guide](CONTRIBUTING.md) for details. |
| 48 | +Thanks to all the people who contribute to LibreSign: |
159 | 49 |
|
160 | | ---- |
| 50 | +<a href="https://github.com/LibreSign/libresign/graphs/contributors"> |
| 51 | + <img src="https://contrib.rocks/image?repo=LibreSign/libresign" /> |
| 52 | +</a> |
161 | 53 |
|
162 | 54 | ## Screenshots |
163 | 55 |
|
164 | 56 | <p align="center"> |
165 | 57 | <img src="img/LibreSign.png" alt="LibreSign interface screenshot" width="900"/> |
166 | 58 | </p> |
167 | 59 |
|
168 | | ---- |
| 60 | +## Documentation |
169 | 61 |
|
170 | | -## Contributors ✨ |
| 62 | +- Official documentation: https://docs.libresign.coop/ |
| 63 | +- Developer manual: https://docs.libresign.coop/developer_manual/ |
| 64 | +- Documentation repository: https://github.com/LibreSign/documentation |
171 | 65 |
|
172 | | -Thanks go to these wonderful people: |
| 66 | +## Sponsors |
173 | 67 |
|
174 | | -<a href="https://github.com/LibreSign/libresign/graphs/contributors"> |
175 | | - <img src="https://contrib.rocks/image?repo=LibreSign/libresign" /> |
176 | | -</a> |
| 68 | +If your organization depends on LibreSign, please sponsor the project. |
177 | 69 |
|
178 | | -## Star history |
| 70 | +Sponsorship directly supports ongoing maintenance, reliable releases, better documentation, and long-term continuity for teams that rely on LibreSign in real workflows. |
179 | 71 |
|
180 | | -[](https://www.star-history.com/#libresign/libresign&Date) |
| 72 | +Support LibreSign: https://github.com/sponsors/LibreSign |
0 commit comments