1
0
Fork 0
forked from jriou/coller
Commit graph

62 commits

Author SHA1 Message Date
09dd88783e
fix: use innerText instead of innerHTML 2025-10-13 14:27:31 +00:00
685914c323
Release 1.3.0
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-10 17:30:09 +02:00
0ed61db444
docs(README): configuration file is optional
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-10 13:01:59 +02:00
b35828d909
feat: Add clients base URL
- Add `clients_base_url` to define an alternative URL to download clients

- Rename `clients_directory` to `clients_base_directory` to download clients
  locally based on the version. If `show_version` is disabled and
  `clients_base_directory` are both defined, a redirection to a remote URL with
  the "latest" version is chosen in order to avoid to disclose the server
  version.

Fixes #43.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-10 12:55:26 +02:00
ab6b03a6d4
feat: serve clients binaries from a local directory
Fixes #44.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-10 12:30:48 +02:00
b0c0162b06
feat: serve only the bootstrap minimal css file
Fixes #45.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-10 09:20:12 +02:00
888e2b3278
fix(clients): download URL for copier
The project name is "coller" and not the client name.

Fixes #42.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-06 13:44:36 +02:00
5232b10a7c
Release 1.2.0
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 19:00:44 +02:00
b316c6ef67
feat: Add copier and curl links
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 09:23:40 +02:00
2d8d7efbcb
feat: Add JSON logging format
Fixes #40.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 07:35:48 +02:00
acfad88cb8
feat: Handle X-Forwarded-Proto header
Fixes #39.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 07:27:43 +02:00
de24146991
feat: Encode password
Fixes #38.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 07:07:10 +02:00
f721e56371
refactor: Use functional errors
Use well-defined server errors instead of hardcoded messages that could be
slightly different and spread accross the code base.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-02 06:35:27 +02:00
55de3afc71
feat: Return top-level errors to clients
In order to reduce security risk, the server now returns only functional error
messages to the clients and log low-level error messages.

Fixes #35.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-01 18:13:15 +02:00
ee7b5f0c6e
feat: Pass encryption key in URL fragment
- Remove encryptionKey from URL
- Use POST method to pass both password and encryption key
- Parse URL fragment to extract the encryption key from the web (using
  javascript) and from the CLI

Fixes #36.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-10-01 12:43:04 +02:00
1fcde736a8
fix: convert id to int64
Snowflake identifiers are integers, not strings.

BREAKING CHANGE: notes that are not using snowflake identifiers will not be
compatible anymore.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-27 10:05:58 +02:00
b5701b5a4d
feat: replace Monaco by Ace
- Remove the Monaco Editor because it was to heavy and hard to integrate
- Use Ace instead
- Use the lowercase identifier for languages (ex: "Text" -> "text")
- Select automatically the default language in the drop down to create a note
  (like the expiration)
- Add `ace_directory` to serve assets from a local folder instead of a CDN
- "hcl" syntax highlighting has been removed
- "go" syntax highlighting has been renamed to "golang"
- Add option to disable the editor

Fixes #32.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-27 09:56:50 +02:00
9e0254c0b5
feat: Add password protection
Fixes #37.

BREAKING CHANGE: API routes are prefixed by /api/note.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-27 08:36:00 +02:00
61ca30690b
feat: Disable levels of encryptions by default
- Add `allow_client_encryption_key` option to allow encryption key provided by
  the client on the web UI (false by default)
- Add `allow_no_encryption` option to allow notes without encryption (disabled
  by default)

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-24 17:44:50 +02:00
75bdab55df
refactor: Rename protected to encrypted
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-24 09:50:13 +02:00
8e1dd686d3
feat: Rename password by encryption key
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-24 07:09:01 +02:00
634326190c
feat: add expiration time in the note web view
Fixes #35.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-22 17:13:44 +02:00
2c3ca08dbf
feat: Use snowflake identifiers
Fixes #29.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-20 08:37:37 +02:00
d26879a333
Release 1.1.0
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-20 07:05:04 +02:00
3a7d82a396
refactor: Move handlers into their own files
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-20 06:47:31 +02:00
70d3892b15
feat: Add Command-line clients link and web page
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-20 06:36:28 +02:00
ff92e30232
feat: Option to serve Bootstrap from the filesystem
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-19 07:14:33 +02:00
b62a807f89
feat: Add HTTPS support
Fixes #19.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-19 07:12:21 +02:00
5122000d48
feat: Create releases with make releases
Fixes #22.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-17 10:24:35 +02:00
4b01308125
style: Use lowercase for errors
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-15 18:30:59 +02:00
e2d3146222 fix: display error page instead of panic on non existant note (#30)
Same that jriou/coller#24 but for non password protected notes

Co-authored-by: Thibault Piron <thibault.a.piron@gmail.com>
Reviewed-on: jriou/coller#30
Reviewed-by: Julien Riou <jriou@monitoring@riou.xyz>
Co-authored-by: tapiron <tapiron@monitoring@riou.xyz>
Co-committed-by: tapiron <tapiron@monitoring@riou.xyz>
2025-09-15 18:30:03 +02:00
e03aa6b87a feat: add possibility to hide upload button (#25)
I was asked to add the possibility to hide the upload button to avoid users confuse this tool for a file sharing app.
This is only on the front.

No breaking changes, by default the button is displayed.

Co-authored-by: Thibault Piron <thibault.a.piron@gmail.com>
Reviewed-on: jriou/coller#25
Reviewed-by: Julien Riou <jriou@monitoring@riou.xyz>
Co-authored-by: tapiron <tapiron@monitoring@riou.xyz>
Co-committed-by: tapiron <tapiron@monitoring@riou.xyz>
2025-09-15 09:20:50 +02:00
33628331f4 feat: set default expiration in select (#28)
No default value in select could be interpreted as ever lasting note.
Default value in the select makes that clearer.

Co-authored-by: Thibault Piron <thibault.a.piron@gmail.com>
Reviewed-on: jriou/coller#28
Reviewed-by: Julien Riou <jriou@monitoring@riou.xyz>
Co-authored-by: tapiron <tapiron@monitoring@riou.xyz>
Co-committed-by: tapiron <tapiron@monitoring@riou.xyz>
2025-09-15 06:51:16 +02:00
938d10c3a6 fix: remove double rendering and test error (#26)
Remove double template rendering and test error for non password protected note

Co-authored-by: Thibault Piron <thibault.a.piron@gmail.com>
Reviewed-on: jriou/coller#26
Reviewed-by: Julien Riou <jriou@monitoring@riou.xyz>
Co-authored-by: tapiron <tapiron@monitoring@riou.xyz>
Co-committed-by: tapiron <tapiron@monitoring@riou.xyz>
2025-09-13 19:10:50 +02:00
401397241b
fix: Upload text files other than plain text
Fixes #23

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-09-10 07:02:48 +02:00
af5baa999c fix: display error page if note not found (#24)
Fix panic when trying to access a non existing note with the "pretty" url (.html)

Reviewed-on: jriou/coller#24
Reviewed-by: Julien Riou <jriou@monitoring@riou.xyz>
Co-authored-by: Thibault Piron <thibault.piron.ext@ovhcloud.com>
Co-committed-by: Thibault Piron <thibault.piron.ext@ovhcloud.com>
2025-09-09 15:57:23 +02:00
792eff78cc
chore: Add release action in Makefile
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 16:49:27 +02:00
dc80145005
Release 1.0.0
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 15:25:06 +02:00
0a4e001dd9
docs(copier): Rename -w to -ask-password
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 13:01:50 +02:00
d43c645039
Several changes to clients
coller:
- Add FILENAME as positioned argument (fixes #18)
- Add -html argument to show the URL of the webpage

copier:
- Rename -w to -ask-password

both:
- Rename -b to -ask-bearer

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 12:48:03 +02:00
463e2e703b
docs(README): Add docker compose example
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 10:13:49 +02:00
9d9a0b842e
docs(README): Update docker command
The listen address is now 0.0.0.0 by default, we can remove `--network host`
from the Docker command in the example.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 10:09:54 +02:00
8edaebfad6
feat: Add web view to display notes in HTML
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-28 09:46:44 +02:00
a5ebf7607c
feat: Enable metrics by default
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-27 22:56:53 +02:00
c54f32495b
feat: Add text editor
Use Monaco Editor to create notes. Support syntax highlighting. Store the
language with the note in the database to later support syntax highlighting in
a note web view.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-27 22:42:12 +02:00
b45c3e3253
feat: Support Bearer token for clients
Fixes #13.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-26 17:32:16 +02:00
d3b28143ea
fix(encoding): Use utf-8 in plain/text responses
Fixes #12.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-26 16:20:33 +02:00
9107326962
fix(docker): Add collerd.json example file
Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-26 12:33:09 +02:00
7d7614637b
Several fixes and features
- Commit database transactions
- Listen to all interfaces by default
- Use logger in collerd
- Add docker-compose file with PostgreSQL

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-26 12:30:41 +02:00
01031a24ab
docs: Add API routes
Fixes #10.

Signed-off-by: Julien Riou <julien@riou.xyz>
2025-08-26 11:53:22 +02:00