Commit graph

32 commits

Author SHA1 Message Date
dvdsk
28463e48c1
Adds a feature no-c-deps which makes microbin easy to crosscompile
With `no-c-deps` enabled microbin can be compiled for aarch64 by simply
passing in `--no-default-features`, `--no-c-deps` & `--target
aarch64-unknown-linux-musl`. The resulting binary is fully static and
does *not* depend on glibc. Therefore it can be deployed to any linux
target running an aarch64 cpu (arm). There is no need for any
containers.

There where four obstactles to easily statically linking microbin
with musl.

- The syntect library depended on the onigura regex engine. With
  `no-c-deps` it uses `fancy-regex` a slower alternative fully written
  in rust.
- Dependency actix-web supported zstd compression requiring the system
  zstd library to be present.
- The rusqlite library build and linked the C-library sqlite. That needs
  a crosscompiler and various crosscompile packages. With `no-c-deps`
  enabled the sqlite db option is disabled and the -json-db arg must be
  used. If the user does not pass -json-db microbin will panic when
  starting with a clear error message.
- reqwest was using openssl for reporting telemetry and checking for new
  versions. With `no-c-deps` it uses rustls with crypto provider
  rustcrypto. While rustcrypto has not been formally verified it should
  be good enough for sending telemetry (which should not contain any
  secure/personal data anyway) and checking versions.
2024-10-22 18:14:54 +02:00
dvdsk
b86adc7ac9
update deps + rustls 2024-10-22 01:40:41 +02:00
dvdsk
96de6125c9
Upgrade deps, builds upon pr #254 by Timshel 2024-10-22 01:14:26 +02:00
Timshel
3a256305e7 Upgrade deps 2024-03-13 21:23:24 +01:00
Daniel Szabo
4a7360b90e Replaced "pasta" on all user-facing places with "upload"
- We understand what a pasta is, but let's avoid the situation when you send a link to your mom that ends with microbin.eu/pasta/dog-bat-cat and they misunderstand it.
- Also replaced /pastalist with just /list
- Internally kept "pasta" instead of "upload" to confuse everyone adopting MicroBin after v2
2023-07-11 20:58:34 +03:00
Daniel Szabo
571bfbff1f Bump version for v2 release 2023-07-11 20:16:05 +03:00
Daniel Szabo
917ce3c713 Update checking and telemetry improvements
- Implemented configuration telemetry
- Added option to disable version checking
- Updated URL for versioning and telemetry endpoint
- Added option to opt-in for a public MicroBin server list in the future
2023-07-11 17:36:33 +03:00
Daniel Szabo
9e03864090 set openssl dependency as vendored
Fixes build github action error caused by dependency of a non-included openssl system binary in the action used to build MicroBin
2023-07-10 14:45:21 +03:00
Daniel Szabo
590e3022e8 Bump version for v2 beta 4 2023-07-10 14:21:14 +03:00
Daniel Szabo
6322d6cbb0 Added simple update checker
By parsing some json served by the MicroBin website, MicroBin can now check whether there is a newer version out there, and display the update information on the admin screen.
2023-07-09 14:00:29 +03:00
Daniel Szabo
efdcf0f5e2 Bump versioning for new beta release 2023-07-08 19:18:58 +03:00
Daniel Szabo
4c367c0ddf Bump version to 2.0.1 (beta2) 2023-07-04 19:23:23 +03:00
Daniel Szabo
38e4fa4fe7 update cargo version number 2023-07-01 21:20:43 +03:00
Daniel Szabo
bc188e3d34 Microbin 2 beta 1 first commit
This is the first, early beta version of Microbin 2.

Microbin 2 brings a lot of improvements to Microbin. To name just the most important ones:
- Server-side and client-side encryption for uploads, including file attachments,
- SQLite database support by default,
- Reworked upload settings, 5 privacy levels,
- New administrator console (/admin),
- Automatic syntax highlighting,
- Image and video embedding,
- Refreshed styling and QoL features,
- New user guide page.

Beyond these,
- Added file upload size limits,
- Added sample .env file with description for each environmental variable,
- Removed Info page (moved to admin page),
- Pasta list now sorted from newer to older,
- Pasta terminology replaced with Upload,
- Files are now served with a proper service, not just as a public directory,
- Pastas are now stored in /attachments instead of /public.

As this is the first beta of Microbin v2, and I do not recommend updating to this in critical environments as long as we are in beta stage. I expect many bugs to emerge and v2 is also getting a few more smaller QoL features from the backlog. README and website won't be updated until v2 is stable and well-tested.

Fixes #164
Fixes #156
Fixes #153
Fixes #149
Fixes #139
Fixes #98
Fixes #4

Fixes #105 (sort of)
Fixes #97 (sort of)
Fixes #45 (sort of)
Fixes #22 (sort of)
2023-07-01 19:12:06 +03:00
Daniel Szabo
c9c60aa546 increment version number and update homepage in Cargo.toml 2023-03-26 23:07:07 +03:00
Zac
6907bb4f13 bugfix: stored XSS
bugfix: Copy Text is not working when the button Copy Url does not exist.
2023-02-21 09:52:00 +08:00
Daniel Szabo
c6e5c6f018 Merge branch 'master' into szabodanika 2022-11-06 23:21:45 +02:00
Daniel Szabo
2198cbdff9 Getting ready for 1.2 & new site release
- improved support for serving static resources from the binary, now supporting images
- added new logo
- changed save button
- fixed footer attribution text, it is not true anymore that MicroBin is made by myself
- replaced footer GitHub link with microbin.eu link
2022-11-01 20:56:07 +02:00
Heng-Yi Wu
b5da40fbdc
feat: hashids 2022-11-01 21:19:54 +08:00
Daniel Szabo
44b55ae08e Getting ready for 1.2.0 release: many smaller requests implemented
- Implements #7
- Implements #42 and therefore #64
- Improved #53
- Implements #59
- Implements #61
- Implements #63
- Implements #80
- Implements #84
- Added Info page
- Removed Help page
- Bumped version number to 1.2.0
- Fixed a bug where wide mode was still 720px wide
- Created FUNDING.yml
- Reorganised arguments in README.MD and documented new options
- Updated SECURITY.MD
- Added display of last read time and read count
- Increased default width to 800px to make UI less cluttered
- Reorganised index page
- New, better attach file button

I want to spend some time testing these changes and let everyone have a look at them before tagging and releasing new artifacts.
2022-10-29 14:11:55 +03:00
Arghyadip Chakraborty
08871e15b6 Automated docker build 2022-08-25 22:25:03 +05:30
Daniel Szabo
a3fc97a460 bump version number 2022-07-31 22:06:41 +01:00
Dániel Szabó
d4d94b61da
Merge pull request #34 from uniqueNullptr2/uniquenullptr2-add-config-from-env
add configuration from env to all clap options
2022-07-25 14:04:26 +01:00
uniqueNullptr2
bcd620ed43 add configuration from env to all clap options 2022-07-20 08:50:23 +02:00
dvdsk
39233e9447
fixes #6 adding the size of the attached file 2022-07-14 01:08:13 +02:00
Daniel Szabo
ce8bd4dd02 Added cargo information and readme badges 2022-06-05 00:20:23 +01:00
Daniel Szabo
4cc737731a Multiple enhancements and bugfixes
!Breaking change! - The updated version will not be able to read your old database file

Major improvements:
- Added editable pastas
- Added private pastas
- Added line numbers
- Added support for wide mode (1080p instead of 720p)
- Added syntax highlighting support
- Added read-only mode
- Added built-in help page
- Added option to remove logo, change title and footer text

Minor improvements:
- Improved looks in pure html mode
- Removed link to GitHub repo from navbar
- Broke up 7km long main.rs file into smaller modules
- Moved water.css into a template instead of serving it as an external resource
- Made Save button a bit bigger
- Updated README.MD

Bugfixes:
- Fixed a bug where an incorrect animal ID in a request would cause a crash
- Fixed a bug where an empty or corrupt JSON database would cause a crash
2022-06-03 17:24:34 +01:00
Daniel Szabo
1e6bc916b8 missing dependencies from previous commit 2022-05-08 16:37:54 +01:00
Daniel Szabo
36fa6598a8 File upload and persistence extension
- index.html extended with form input
- pasta.html and pastalist.html show link to /file/{pasta.id}/{filename} path
- files are saved in pasta_data folder
- all data is now stored in pasta_data/database.json
- changed pastalist.html date format to exclude year
- added custom 404 error handler
2022-05-02 16:53:10 +01:00
Dániel Szabó
f56ffa98e4 - added new pasta type URL and automatic redirection endpoint
- added water.css styling
- added CL argument to set port
- added raw URL to pasta list
2022-04-23 16:47:36 +01:00
Dániel Szabó
22b61fc793 Added auto removal of expired pastas 2022-04-11 14:41:28 +01:00
Dániel Szabó
d42a361e95 Initial commit 2022-04-10 23:21:45 +01:00