Skip to content

Releases: manyfold3d/manyfold

v0.72.0

11 Jul 12:08
18bb646
Compare
Choose a tag to compare

This release focuses on the deployment and sysadmin aspects of running Manyfold. We've added in support for MySQL / MariaDB database servers, as well as the ability to use SQLite's file-based database if you don't want to run a separate database server.

And at long last, by using SQLite, we've created a new "solo" image, which by default integrates everything into a single container - no need for a separate database or Redis server at all! Just pull manyfold-solo instead of manyfold, mount a persistent volume at /config for the database, and you're up and running!

Bonus feature: we've also cut the size of the docker image down, from 1.5GB to around 250MB, by removing all the build-time stuff that wasn't needed at runtime.

What's Changed

✨ New Features ✨

  • Support SQLite databases in production by @Floppy in #2364
  • Add support for MySQL database servers by @Floppy in #2366
  • Add "solo", a fully standalone container which doesn't need external database or redis by @Floppy in #2374

🐛 Bug Fixes 🐛

🛠️ Other Improvements 🛠️

  • Add security section to release notes by @Floppy in #2368
  • Reduce size of docker container using multistage build by @Floppy in #2369
  • Improve database configuration options, examples, and docs by @Floppy in #2372
  • Run main docker image application using s6 service by @Floppy in #2375

Full Changelog: v0.71.0...v0.72.0

v0.71.0

06 Jul 13:17
cf130a0
Compare
Choose a tag to compare

Not got enough disk space? Now you can create a library that uses S3-compatible cloud storage instead of local disk! This could be from any of a large number of open source or commercial services - either out on the public Internet, or self-hosted!

What's Changed

✨ New Features ✨

🐛 Bug Fixes 🐛

  • FIx deletion bug caused by presupported model links by @Floppy in #2355
  • Fix storage registration during migrations by @Floppy in #2357

🛠️ Other Improvements 🛠️

  • Add ability to set storage engine for library by @Floppy in #2345
  • Refactor file access so that everything goes through Shrine by @Floppy in #2351
  • Improve library creation and edit forms by @Floppy in #2359
  • Hide unused storage service options on page load by @Floppy in #2361

Full Changelog: v0.70.3...v0.71.0

v0.70.3

01 Jul 14:10
284a867
Compare
Choose a tag to compare

Another bug fix release, mainly for people with libraries with IDs of 10 or over, plus a bonus fix for extraneous MeshLoadErrors (because it was trying to load images not meshes)

What's Changed

🐛 Bug Fixes 🐛

  • Check if a file is 3d before trying to do geometric analysis by @Floppy in #2343
  • Fix incorrect library fetching when ID has >1 digit by @Floppy in #2344

Full Changelog: v0.70.2...v0.70.3

v0.70.2

01 Jul 12:16
2ee6cd7
Compare
Choose a tag to compare

FIxing a couple of bugs in the recent release, mainly around ever-increasing cache folder size (which should now be automatically cleaned up) and some subtle background errors at first startup and library creation.

What's Changed

🐛 Bug Fixes 🐛

  • Automatically update workers with new libraries before jobs start by @Floppy in #2341
  • Avoid copying and caches when organizing files by @Floppy in #2342

🛠️ Other Improvements 🛠️

Full Changelog: v0.70.1...v0.70.2

v0.70.1

29 Jun 20:40
8b930b2
Compare
Choose a tag to compare

Just a quick bugfix to speed up data migration during upgrade to v0.70.0. See release notes for that version for everything else!

What's Changed

🐛 Bug Fixes 🐛

Full Changelog: v0.70.0...v0.70.1

v0.70.0

29 Jun 10:07
3a7a287
Compare
Choose a tag to compare

This releases brings BIG changes to the upload process. Firstly, file upload progress is shown as it happens, so you can see what's going on; then, the extraction of zip files happens in the background, so you can carry on using Manyfold while it happens. Models are created straight away, without the need for a full scan, so the "scan after upload" button has gone away. And finally, perhaps our single most popular feature request - you can now upload individual files as new models! So, no need to zip up a single STL any more.

We're certainly going to build on this more, with options like uploading files into an existing model, and renaming models during the upload process, which you can see on the feature roadmap.

We've also made changes to the way the background processing works. Expensive jobs like geometric analysis and file conversion may now take a little longer to work through by default, but they shouldn't saturate the server and stop other things happening in the meantime. You can control the concurrency of the background runners using the new DEFAULT_WORKER_CONCURRENCY and PERFORMANCE_WORKER_CONCURRENCY options, which are set to 4 and 1 by default. If you have lots of CPU and memory on your server, you can bump those up.

The underlying change that's enabled all of this is a big rewrite of the actual file storage engine. You shouldn't notice any difference, although this enables some great stuff in future, like support for cloud storage.

NOTE: it may take a long time to migrate data during the upgrade, depending on the size of your library, perhaps in the region of 10-20 seconds per gigabyte.

If you have any problems, as always, come say hi in our very helpful support chat or file a bug report on GitHub.

What's Changed

✨ New Features ✨

  • Upload single 3d or image files as new models by @Floppy in #2323
  • Improved uploader using Shrine and Uppy by @Floppy in #2315
  • Automatically scan uploaded files, and more efficiently by @Floppy in #2320
  • Change default upload size limit to 1GiB by @Floppy in #2319
  • Add environment variable for database pool size by @aneurinprice in #2293

🐛 Bug Fixes 🐛

  • Use new Rails 7.1 Redis connection pool by @Floppy in #2298
  • Fix potential file access error when using read-only container filesystem by @Floppy in #2313
  • Renormalize i18n file by @Floppy in #2321
  • Fix CSS import for Uppy by @Floppy in #2326
  • Fix tag 404 error when deleting models by @Floppy in #2327

🛠️ Other Improvements 🛠️

  • Use our own fork of sqlite3_ar_regexp to get Rails 7.1 support by @Floppy in #2294
  • Update to Ruby 3.3.1 by @Floppy in #2296
  • Update donate link to go to website donate page by @Floppy in #2300
  • Create security reporting policy by @Floppy in #2304
  • Add Shrine storage engine by @Floppy in #2198
  • Set connection pool size for ActiveJob::Status to same as DB by @Floppy in #2310
  • Improve behaviour of background workers by @Floppy in #2312
  • Move uploading into ModelsController by @Floppy in #2314
  • Move archive decompression into a background job by @Floppy in #2322

Full Changelog: v0.69.0...v0.70.0

v0.69.0

20 Jun 08:53
ca00fcd
Compare
Choose a tag to compare

We had a security audit recently, thanks to NLNet / NGI Zero and Radically Open Security. This release fixes a load of security issues that were found in the audit, many of which fix other bugs at the same time.

The biggest obvious change is that you should now set PUID and PGID environment variables to specify which user and group Manyfold should run as - before, it would run as root because that's what Docker does by default, and that's obviously a security risk. If you don't set those variables, it will continue to run as root, but it will warn you loudly until you change it! Don't forget to make sure that your libraries are writable by the user you choose!

Visit our new Security page for more details on these and other new options to make your instances more secure!

What's Changed

✨ New Features ✨

  • Show admins a security alert if container is being run as root by @Floppy in #2252
  • Add PUID and PGID env vars to control which user the app runs as by @Floppy in #2253
  • Lock accounts temporarily after too many failed login attempts by @Floppy in #2254
  • Show free space in upload selector and library details (for admins only) by @Floppy in #2260
  • Limit file upload size by @Floppy in #2266
  • Add HTTPS_ONLY env option to force secure-only connections by @Floppy in #2275
  • Limit size of extracted files on upload by @Floppy in #2281

🐛 Bug Fixes 🐛

  • Restrict problem viewing to contributors, not viewers by @Floppy in #2257
  • Set secure flags on libarchive extraction to avoid "Zip Slip" exploits by @Floppy in #2258
  • Fix upload file filter on Windows machines by @Floppy in #2261
  • Fix translation linter error by @Floppy in #2262
  • Avoid naming race condition on upload by @Floppy in #2268
  • Stop username enumeration through password reset form by @Floppy in #2283
  • Check problematic item exists when rendering problem list by @Floppy in #2289
  • Allow inline style attributes in Content-Security-Policy by @Floppy in #2290

🛠️ Other Improvements 🛠️

  • Check file extension before unzipping uploads by @Floppy in #2267
  • Make the "remember me" cookie HTTPS-only if appropriate by @Floppy in #2276
  • Completely reset user session on logout by @Floppy in #2279
  • Add session timeouts to reduce session fixation/hijacking by @Floppy in #2280
  • Mitigate timing attacks on user lookups by @Floppy in #2282
  • Change from cocoon to cocooned by @Floppy in #2259
  • Remove external jQuery and selectize scripts by @Floppy in #2285
  • Reduce javascript payload with tree-shaking by @Floppy in #2286
  • Add Content-Security-Policy to increase security by @Floppy in #2287

Full Changelog: v0.68.0...v0.69.0

v0.68.0

29 May 09:36
1db8eee
Compare
Choose a tag to compare

A small release this week, while we do some more big changes behind the scenes for a future release. Main thing is an improvement to the automatic grouping of files in models, so that they get arranged in a more sensible way. There's more to improve here, but this should make things a bit more useful!

What's Changed

✨ New Features ✨

  • Improve automatic part grouping in models by @Floppy in #2211

🛠️ Other Improvements 🛠️

New Contributors

Full Changelog: v0.67.0...v0.68.0

v0.67.0

17 May 12:20
f8d09c9
Compare
Choose a tag to compare

This release introduces optional, anonymous, as-private-as-possible usage tracking, purely so that we can answer the question "how many people are using Manyfold?". There is a detailed breakdown of exactly what data is collected and how we use it in the admin manual, but in summary, we collect only the application version you're running, and we can't access or save it, other than getting aggregated statistics.

Privacy is super important to us, so we've put a lot of work in to make this as difficult for ourselves as possible! And of course, it's completely optional and off by default, so you can choose whether or not you want to report in.

Having said all that, letting us know is super useful, so if you're comfortable doing so, please please turn on the reporting in settings! ❤️

What's Changed

✨ New Features ✨

🛠️ Other Improvements 🛠️

Full Changelog: v0.66.2...v0.67.0

v0.66.2

13 May 11:18
e528940
Compare
Choose a tag to compare

Small hotfix to stop invalid filenames being created during 3MF export.

What's Changed

🐛 Bug Fixes 🐛

Full Changelog: v0.66.1...v0.66.2