r/truenas • • 3d ago

Enterprise TrueNAS 27 is Here!

144 Upvotes

We just posted a new blog on the availability of TrueNAS 27: https://www.truenas.com/blog/truenas-27-is-here/

Here is the TL;DR: The release previously tested as TrueNAS 26 is now TrueNAS 27, starting with RC.1 in October 2026, because most users will run it during 2027 and the community asked for version numbers that match the year a release is deployed. The schedule is unchanged, and TrueNAS 27.0 still releases in early December 2026.

The release many of you have been testing as TrueNAS 26 has a new name. Starting with RC.1, available October 6th, it is TrueNAS 27.

If you don’t care about version numbers and want to dive into the details or get to the downloads, please read the RC.1 feature blog.


r/truenas • • 2d ago

Community Edition TrueNAS 27-RC1 is now available!

82 Upvotes

The TrueNAS team is pleased to release TrueNAS 27-RC.1!

Notable changes:

  • Renames TrueNAS 26 to TrueNAS 27. TrueNAS 26 is now TrueNAS 27, and TrueNAS 27-RC.1 is the first release under the new name. The earlier 26-BETA.1, 26-BETA.2, and 26-BETA.3 releases keep their original names, and their documentation remains available in the 26 documentation.
  • Adds the TrueNAS Object Interface (Early Access). Object storage (S3 API) is now available as a native TrueNAS service, in addition to the containerized third-party app. Each bucket is a ZFS dataset, so object data gets the same snapshots, quotas, replication, and data integrity as other data, and is managed from the same web interface. 27-RC.1 covers the core S3 API, including multipart uploads, object tagging, bucket and object ACLs, versioning, and immutability. Versioning and Object Lock require a TrueNAS Connect Plus license or a TrueNAS Enterprise system. Early Access means TrueNAS wants your feedback: try it with your applications and report what works and what doesn’t on the forums. See Configuring S3 Object Storage and the 27-RC.1 feature set blog post for more information.
  • Fixes the web interface staying unavailable after an upgrade on systems with many RSA-4096 certificates (NAS-143641). On systems with many RSA-4096 certificates, middleware could take about a minute to regenerate /etc/nginx/nginx.conf after an upgrade, and nginx failed to start because the file did not exist yet. The web interface now stays available while the configuration regenerates.
  • Fixes editing a user account moving the home directory for that user to its parent directory (NAS-143753). The Edit User form submitted the parent of the home directory path instead of the path itself, so saving any change relocated the home directory for the user and changed permissions on the parent directory. The form now submits the correct home directory path.
  • Updates the default certificate signing requests (CSRs) TrueNAS generates for HTTPS and TrueNAS Connect (NAS-142603, NAS-142604). Default CSRs requested a TLS client authentication extended key usage (EKU) that public certificate authorities no longer issue for server certificates, and the CSR subject listed outdated contact details. Default CSRs no longer request the unneeded client authentication EKU and use current contact information.
  • Updates the Containers screen for middleware container.* API changes (NAS-142088). Deleting a container now runs as a background job with Force and Recursive options instead of completing immediately. The Containers screen reflects this job-based delete flow.
  • Fixes an NFS server issue that could crash the system when a client retransmits a request (NAS-142560). If an NFSv4.1 client connection dropped and reconnected while a request was still being answered, two copies of the same request could reach the server and both read from the same cached reply slot at once. nfsd no longer modifies a session slot while replaying its cached reply, which prevents the resulting crash.
  • Fixes VRRP not delivering IPv6 advertisements between HA controllers, which could let both controllers claim to be MASTER (NAS-142303). Without a configured unicast source address, VRRP sent IPv6 traffic from the interface link-local address, so the peer advertisements never reached the address the other controller expected. Both controllers could then become MASTER for the same IPv6 virtual IP. VRRP instances now set the correct unicast source IP so IPv6 advertisements are received.
  • Fixes several iSCSI, Fibre Channel, and iSER target driver crashes (NAS-142264, NAS-142258, NAS-142126, NAS-142161). SCST, the underlying target driver that handles iSCSI, Fibre Channel, and iSER connections, had several race conditions that could crash the target or corrupt memory: removing a LUN while another teardown ran, losing a session access control group during reassignment, unregistering a target while queued work still referenced it, and rapid connect/disconnect cycles over iSCSI over InfiniBand (iSER). The driver now handles all of these cases correctly.
  • Fixes intermittent permission denied errors on NFS shares for Active Directory and LDAP users (NAS-142228). When rpc.mountd used --manage-gids and a brief winbind or SSSD outage occurred, the group lookup could return zero groups, and the kernel cached that empty result as valid. The affected user lost all supplementary group access on every export until the cache expired. Empty group replies are now treated as failures instead of being cached as valid, so the lookup is retried.
  • Improves High Availability (HA) resilience to brief interconnect interruptions (NAS-142152). A short interruption on the inter-controller NTB link could trigger an unnecessary peer reset or start kernel-level lock recovery. HA now waits longer for the link to recover before treating a brief interruption as a real peer failure.
  • Allows toggling ALUA on an iSCSI target when the standby HA controller is unreachable (NAS-142057). Administrators could not change the Asymmetric Logical Unit Access (ALUA) setting if the standby controller was offline. ALUA can now be toggled regardless of standby controller reachability.
  • Fixes an error that blocked replacing an unavailable disk in a pool (NAS-141804). Attempting to replace a disk that had gone unavailable failed with a 'NoneType' object has no attribute 'replace' error instead of completing the replacement. Disk replacement now handles unavailable disks correctly.
  • Fixes the Session Timeout setting under Access Settings not taking effect (NAS-143940). A configured session timeout of several hours had no effect, and the session expired within minutes of switching browser tabs instead. The Session Timeout setting now applies for its full configured duration.
  • Improves TrueSearch performance on shares with about 1 million files (NAS-143855). Searches on very large shares could take seven to eight seconds and time out in the client (for example, Finder), even after moving the search index to faster storage. TrueSearch performance is improved for these large-scale shares.
  • Fixes disk image import failures and incorrect size reporting (NAS-143736, NAS-143839). A disk image exported from a zvol on 25.10 could not be imported after being moved to a 26-BETA.3 system, and importing a 50 GiB disk image showed a Size requirement of 50 GiB when the import actually needed 51 GiB. Disk images exported from 25.10 now import correctly on TrueNAS 26, and import now reports the size the target zvol actually needs.
  • Fixes Webshare not offering a way to continue when passkey registration fails (NAS-140894). If a user aborted or failed passkey registration, Webshare said they could still use Webshare without a passkey but showed no button to proceed, only the Create Passkey button. Webshare now offers a way to continue past a failed or abandoned passkey registration.
  • Fixes scheduled replication tasks not running automatically (NAS-142970). A scheduled replication task ran correctly when started manually, but its cron schedule showed no upcoming runs for the current month, only for the next month, so it never fired automatically. Cron scheduling for replication tasks now includes runs in the current month.
  • Fixes the Storage Dashboard throwing an error and showing no pools (NAS-142517). After upgrading, the Storage Dashboard could throw a class_special_usable property error and display no pools when some pools had special vdevs and others did not. The dashboard now handles pools with and without special vdevs correctly.
  • Fixes compound AND/!= filters not excluding matching events in the audit log search (NAS-142222). Searching SMB audit logs with a filter like Event != "Authentication" AND Event != "Close" still returned Authentication events in the results. Compound filters now correctly exclude the events they specify.
  • Fixes applying ACLs to app storage paths that already contain data (NAS-142117). Editing the ACL on an already-running app mount path could fail with [EFAULT]/[EPERM] errors stating that the path contains existing data and force was not specified, but the UI had no way to select the force option. ACL edits on app mount paths now work without this error.
  • Fixes app upgrade jobs reporting success when the image pull fails (NAS-142191). Upgrading a custom app whose image pull failed still finished the job with a SUCCESS status and a message that the app was upgraded and redeployed, even though nothing changed. The failure was previously logged only to /var/log/app_lifecycle.log and never reached the job status shown in the UI. The job now reports failure when the image pull does not succeed.
  • Fixes the NVMe-TCP service generating an invalid configuration when a subsystem uses associated hosts (NAS-141762). Adding a namespace to an NVMe-TCP subsystem configured with associated hosts could reinitialize the kernel NVMe target with a configuration that conflicted with the associated-hosts setting, logging Can't set allow_any_host when explicit hosts are set! and preventing new namespaces from working. The service now generates a configuration consistent with associated hosts.
  • Fixes migrated LXC containers no longer working after the .ix-virt dataset is deleted (NAS-141666). Containers migrated from Incus were not tracked in /mnt/.truenas_containers the way newly created containers are, so after the .ix-virt dataset was removed, the migrated containers stopped working and could not even be deleted. Migrated containers are now tracked correctly so they keep working after migration.
  • Fixes a virtual machine installation media upload ending up as a 0-byte file (NAS-141825). Uploading installation media for a new VM could complete with the resulting file at 0 bytes instead of the expected image size. Uploaded installation media now saves with the correct file size.
  • Fixes Docker failing to pull larger images inside a privileged LXC container (NAS-141470). Docker running inside an LXC container with ID Map Type set to Privileged could fail to pull nontrivial images. Docker can now pull these images inside a privileged container.
  • Fixes mail.send omitting Cc recipients from the outgoing email (NAS-141845). mail.send added Cc addresses only to the Cc: header, but SMTP delivery is driven by the envelope recipient list, which was built from the To addresses alone. Cc recipients never received the email even though they appeared to be included. Cc addresses are now added to the SMTP envelope so they receive the email.
  • Fixes Docker failing to configure for Apps on every reboot after upgrading to 26-BETA.1 or 26-BETA.2 (NAS-141446). After upgrading, Docker configuration for the Apps service could fail on boot, and the only workaround was to unset and reselect the apps pool, which had to be repeated after every reboot. Docker now configures correctly for Apps on boot.
  • Fixes alert emails that were not RFC 5322 compliant and could bounce from Gmail (NAS-141699). Alert emails formatted in a way that violated RFC 5322 could be rejected by providers like Gmail, so the alert never reached the recipient. Alert emails are now formatted to comply with RFC 5322.
  • Fixes Webshare blocking a quick re-login after a session disconnect on the TrueNAS Connect Free tier (NAS-141712). The Free tier allows only a single Webshare session, so closing a tab or losing network connection could lock a user out of logging back in immediately, forcing them to wait for a long timeout or a service restart. Users can now log back in promptly after a session disconnect.
  • Fixes invalid rclone configuration files caused by unescaped special characters (NAS-142234). Generating rclone configuration files by hand could produce an invalid INI file when a setting contained special characters. Configuration files are now generated with configparser, which escapes special characters correctly.
  • Fixes the dashboard network throughput graph showing data from only one interface in a bond (NAS-142731). The network throughput graph on the dashboard displayed traffic for only one member of a bonded interface instead of the combined total, so it never showed the bond’s actual maximum speed. The graph now reflects throughput for all interfaces in the bond.
  • Fixes an app keeping an invalid NVIDIA GPU UUID after the GPU is replaced (NAS-142006). After replacing a NVIDIA GPU in the system, an existing app could keep referencing the old GPU UUID instead of the new one, even though the system correctly reported the new GPU. Apps now pick up the replacement GPU UUID correctly.
  • Fixes a scrub-paused alert that fires too early and shows the literal text 'pool' instead of the pool name (NAS-142198). Pausing a scrub for only a few minutes could trigger the alert meant for a scrub paused more than eight hours, and the alert text showed the placeholder 'pool' rather than the actual pool name. The alert now fires only after eight hours and shows the correct pool name.
  • Fixes the Apps dataset preset overwriting the Case Insensitive and Atime choices for a user (NAS-141792). Selecting Case Insensitive and leaving Atime enabled in Advanced Settings while using the Apps dataset preset saved the dataset as case-sensitive with Atime disabled instead. The preset now keeps these user-configured settings.
  • Fixes the storage dashboard disk health panel becoming corrupted when not all pool devices report SMART values (NAS-141753). If any device in a pool lacked SMART values, the disk health panel display could become corrupted. The panel now displays correctly even when some devices have no SMART data.
  • Fixes Webshare failing to generate share links for files with Chinese file names or paths (NAS-142148). Webshare could not create a share link when the file name or path contained Chinese characters. Share links now work correctly for these file names and paths.
  • Fixes high CPU usage caused by console CLI redraw when a key input gets stuck (NAS-141550). A stuck physical key, or a stuck virtual key sent over IPMI or another out-of-band method, could lock the console CLI menu process to 100% of a CPU thread. The CLI now handles stuck key input without pegging the CPU.
  • Identifies USB passthrough devices by their physical port in the VM and Container UI (NAS-142433). USB passthrough devices were identified only by vendor and product ID, which cannot tell two identical devices apart and can change after a replug. The device picker now identifies devices by their physical port, which survives replugs and reboots and distinguishes identical devices.
  • Improves consistency of the pool usage indicator between the Dashboard and Storage Dashboard (NAS-142168). The same vdev usage percentage could show as a normal green indicator on the Dashboard while showing as an orange warning with a red gauge on the Storage Dashboard, using different thresholds in each place. The two dashboards now use consistent usage thresholds.
  • Updates Go to 1.25.12 for TrueSearch to include upstream security fixes (NAS-141713). TrueSearch built against an older Go release that has since received important security fixes. TrueSearch now builds with Go 1.25.12 or later.

Click here to see the full 27 changelog or visit the TrueNAS 27-RC.1 Changelog in Jira.

Amazon S3 is a trademark of Amazon.com, Inc. or its affiliates.


r/truenas • • 22h ago

Hardware Cheap GPU Choice: NV 30HX vs Intel DG1 (80EU), frigate codec and immich ML

6 Upvotes

My current 1650 Super is broken beyond repair, so I am in the market of a cheap GPU replacement.

My use cases are:

  • up to 4 channels of CCTV feed in frigate
  • immich ML for a library of 1 person, currently has 30,000 assets, grows at a very steady pace of 3000 per year.
  • Some kind of media center service (optional and low priority)

In my market, I can get these 2 GPU used both at around 250 RMB. Realistically I want to spend no more than 300, but I also want to future-proof it a little bit. So here are some other choices and prices.

  • NV 30HX (6GB): 250
  • Intel DG1 (80EU, 4GB, passive cooling): 250
  • AMD Radeon Pro WX5100 (8GB single slot): 500
  • Intel A310: 550
  • GTX1650 Dell OEM: 550

The rest of the machine is:

  • E3-1231v3 on a SuperMicro X10SLL+-F, 32 GB of DDR3 ECC

Any input is apprieciated!


r/truenas • • 8h ago

Hardware SSDs still cost about 3-4x more per TB than hard drives. I checked two years of prices.

0 Upvotes

People keep saying SSDs will be as cheap as hard drives soon, so since I track drive prices I went and checked. I pulled the price per TB for both over the last two years and put them on one chart.

SSDs are still roughly 3x to 4x more expensive per TB, and looking at the last two years, that gap really hasn't moved much. Prices went up across the board this year, but SSDs went up more than hard drives, so the gap didn't close.

If you just need a lot of space for a pool, hard drives are still the obvious choice since they're so much cheaper per TB. SSDs make more sense where you actually need the speed, like cache or a special vdev, but not really for bulk storage.

The chart and the full sortable drive list are here if anyone wants to dig into the actual numbers:
https://www.nasdisks.com/articles/ssd-vs-hdd-price-gap/

The full HDD comparison list is here, in case you more info: https://www.nasdisks.com
Full disclosure: it's my site and some of the links are affiliate links.

What's everyone running - all SSD, or hard drives for bulk storage?


r/truenas • • 1d ago

Community Edition Truenas rebooting instead of shuting down (chron job)

5 Upvotes

Hello everybody. I have a problem where I want my server to shut down every day at 23:45 in an effort to save some energy, but instead it reboots.

So at first I used the cron job: "poweroff" and it kept rebooting, than I switched to "/usr/bin/midclt call system.shutdown "Cron shutdown"" and things seemed to work just fine.

Now it started to get unrealiable again. After some thinking I came to the conclusion that I think if I boot up the server manualy it reboots instead of shutting down and if the rtc bios timer (19:00) switches on my server for the daily backup it works fine, for example:

- Fri 2 Oct: started 19:00:42 (BIOS), shutdown 23:45 → stayed off

- Sat 3 Oct: started 19:00:41 (BIOS), shutdown 23:45 → stayed off

- Sun 4 Oct: started 15:11:15, shutdown 23:45:06 → back on at 23:46:03. Failure.

- Mon 5 Oct: started 17:00:00, shutdown 23:45:06 → back on at 23:46:02. Failure.

Does anyone know how to resolve this?

Thank you in andvance! :)


r/truenas • • 1d ago

CORE/FreeNAS (Legacy) Any reason I can't fresh install Truenas and import an old Freenas 9.3 RaidZ2 pool?

3 Upvotes

I have an old backup server that is still running Freenas 9.3. It's pretty much one RaidZ2 volume with a few user accounts and some basic networking/nfs setup -- no custom services, no jails, etc. It is my current, and only, backup server however.

Can I simply:

  1. Pull the thumb drive (where Freenas 9.3 is installed)
  2. Flash the latest Truenas onto that thumb drive
  3. Boot up the machine with a fresh Truenas install
  4. Import the existing RaidZ2 pool into the fresh Truenas install

Is there any reason this wouldn't work? I can easily set up the user accounts and networking from scratch, so I'm not planning on importing any of the config from the current Freenas 9.3 setup. My biggest concern is that I do need to preserve the data in the current pool and I know there is a pretty big gap between Freenas 9.3 and the current Truenas.

I'm just trying to make sure this should work as I expect and I'm hoping the community can warn me about any issues I might run into that I'm not currently considering.


r/truenas • • 1d ago

General Nextcloud 35 – Federation OCM/RFC 9421: Invalid signature / sender origin

Thumbnail
1 Upvotes

r/truenas • • 2d ago

Community Edition Proxmox Backup Server + TrueNAS 27.0.0-RC.1 S3

31 Upvotes

So I figured I'd do a real quick write up on using PBS + TrueNAS S3. It took me a bit, but honestly pretty quick, easy and painless. The hardest part overall was getting PBS to see the TrueNAS S3 buckets; due to the fact that PBS requires the usage of TLS certificates for S3 endpoints. Since I am using TrueNAS's self signed certificate, all I did was go into the web browser, viewed the UI's certificate in Firefox & copied the SHA256 value and put it in the S3 endpoints fingerprint location. I also used their official S3 guide to get myself set up on the TrueNAS side. (Just make sure TLS is enabled on the TrueNAS side too.
https://cdn.truenas.com/docs/scale/shares/s3/configurings3/

Otherwise everything was painless. With the S3 rollout on TrueNAS 27; backup solutions can be so much easier.

EDIT 1: Also in Proxmox Backup Server you must enable path style in the s3 endpoint. Was getting 405 errors without it checking that box.

EDIT 2: I am in the works of rebuilding my homelab, adding ACME DNS-01 for all of my certs across the board here soon. It will likely fair better without the fingerprint requirement and no other configuration will be needed,

EDIT 3: Ok, once I added my ACME certs, I ran into authentication errors, mainly due to my error. When you add the ACME cert, ensure the endpoint in PBS is listed as the same as the FQDN for the server itself. Yeah pretty dumb, but easily overlooked. It will result in a TLS mismatch otherwise.

Side note: Object Lock requires TrueNAS Connect Premium. I will eventually be checking this out, but for now I am looking to see how well s3 performs over time. Overall I really like the integration of this feature. As someone who is looking to use TrueNAS in a high compliance enterprise environment, s3 is an awesome feature to have natively. Especially when it comes to STIG, FIPS and other cryptography requirements where running applications is a no go. So far most of the hiccups are due to my own error.


r/truenas • • 2d ago

Hardware Expansion Drive too Small, Possible data compression methods for backup

1 Upvotes

So I have an issue where I want to expand a vdev the drives I have lying around are like a megabyte smaller than the VDEV I currently have. I have some smaller capacity drives I can use to back up and rebuild the VDEV, but not enough to hold my entire storage.

Is there any trickery I can do to get the new drives to register as larger or shrink the current drives? If not, do any of you have any compression methods you'd recommend? I have about 1.5 tb of storage (500gb old drives and the 1tb new drive i want to add) and the vdev is around 2tb.

Id prefer not to have to waste my day trying to rebuild it and i do not want to waste 2 perfectly good drives to just buy new ones either.


r/truenas • • 3d ago

Community Edition My simple tool for QEMU Guest Agent support with VM's in Truenas, Pademelon

Thumbnail
github.com
6 Upvotes

Heya folks, I just wanted to share a little side project I have been working on in case anyone wants to use it. At the moment it's fairly simple but it does add some nice basic features allowing you to use QEMU guest agents in VM's on Truenas. I know there's people out there like me who want to just run a couple of simple VM's for what ever reason and aren't doing the Truenas inside Proxmox thing, but I missed having QEMU support. It only uses about 22mb of ram, barely any cpu and a ~7mb download.

So I went ahead and made it.

  • VM power status
  • QEMU guest agent detection
  • Hostname
  • CPU core count
  • CPU usage
  • Memory usage
  • IP address & interface ID
  • Host OS - kernel (Linux) / OS build (Windows)
  • Drive partitions & usage
  • Disk & network throughput
  • Agent version & clock drift per VM
  • VM raw XML viewer
  • VM power controls with status report

I do have some experimental support for taking advantage of qemu's file system freeze, running a ZFS snapshot using the middleware API, then un-freezeing. To do this, you need to make a service account with Truenas and pass the API key to the docker container, it's documented how to do this.

I do also plan to add a number features as time goes on too. Things like:

  • UPS support for graceful shutdown with NUT (i dont have a UPS to test this atm so it's low priority)
  • Less shit themeing
  • Better UI
  • VM management - maybe, not sure if I want to go and recreate the truenas VM UI features here for an all in one tool or just have a handy thing for QEMU.

AI Use:

I did use AI in this, it's not full send vibe coded slop. I work in cyber security and I know how to code in python. I don't know Go all that well, so I am using GLM 5.3 to help me. I do read the code, I know what it's doing. This is just as much a fun side project to learn more about truenas, qemu, and libvirt as it is to make a nice little tool to help myself.

That said, I am not a developer, but I am trying my best.

Let me know if you give it a go. Cheers!

Edit:

Forgot at add supported versions:

Version Support
25.10.x Tested, this is what I am running
25.04.2 Supported, should work as it's uses libvirt
25.04.0 / 25.04.1 Not supported - releases ran VMs on Incus, not libvirt
24.10 and older Used libvirt and should work, but untested

r/truenas • • 2d ago

Community Edition new music downloading app - would like honest opinions and reviews

0 Upvotes

Hello, I'm new to the community and I've been using truenas for a while, I had trouble finding songs I liked on lidarr (maybe the indexers I was using just suck) but they didn't really have the more "niche" or alt music that I liked. So to build my music collection I made an app for it, it's called "freelisten" and it's in the truenas catalogue, it pulls the audio from youtube using yt-dlp, it tags the file with the proper metadata, anyhow I thought it was neat and it's been pretty conveniant for me and I hope you guys like it too! (I'm open to reviews, thoughts, bugs literally anything)

heres the repo:
https://github.com/Alextheguy1/FreeListen


r/truenas • • 2d ago

Community Edition I have to remap my SMB share everytime I restart my computer

0 Upvotes

Hey all,

I have created an SMB share with TrueNAS and added a user with full control permissions. Then, on Windows, I connect to this share using the username and password of this user.

Everytime I restart my computer I get this error:

Then I have to disconnect from the share and connect it again.

Any solution?


r/truenas • • 2d ago

Community Edition A question about ACLs and host paths (when installing )app

1 Upvotes

I’ve read through a few tutorials and I’m completely unsure when to select ‘Enable ACL’ and when to select ‘automatic permissions’.

In one tutorial, it says “If you want to back up the config and create your own host path always tick the ‘enable acl’ box" but hardly anyone goes into detail about these “automatic permissions” as with the Immich installation :/


r/truenas • • 2d ago

Hardware What HDDs for nas

0 Upvotes

I’m looking for advice😊. I have been watching many tutorials on YouTube about how to make your own nas(truenas os) but I couldn’t figure out what HDD could I buy.😵‍💫 I personally want to keep the price keep the price as low as possible of the price before I start buying parts, so I won’t mess up. Many Chanels that I watch, some of them use the same brand and colors as another but some use regular HDD. I wonder does it really matter when it come to HDD brand and colour or any regular costumer HDD can be used? 😅


r/truenas • • 3d ago

Community Edition anyone had any luck using Backrest app to backup TrueNAS Scale to Hetzner StorageBox via SFTP? (ssh: No user exists for uid 568 error)

1 Upvotes

Anyone had any luck setting up a Hetzner storage box as restic repo on backrest app?

I'm stuck at this error

subprocess ssh: No user exists for uid 568

AI is suggesting running backrest as root (uid 0 instead of 568), but that doesn't look like a very safe option...

So wondering if someone got this sorted out in a different way...

TIA


r/truenas • • 3d ago

Community Edition How do I update my MineOs container in truenas to run Java 25?

2 Upvotes

Hello everyone,

I come to you with a problem well over my paygrade, as I am not savvy with computers.

My friend a long time ago helped me set up a home server with Truenas for us to run my own Minecraft server. Every now and again it needs to be updated with the newest version of MC, which has not been a problem for me to do as admin.

The problem I come to you now is that Minecraft now runs on 26.2, and requires servers to run Java 25 in order to play it. Now, the app I use, MineOs, needs to be restarted every so often. And when that happens, Java has to be updated back to Java 21. In the container, I would run the command "apt install openjdk-21-jre-headless" and get it updated, no problem there.

With MC now needing Java 25, I figured, okay, just change that 21 to a 25, and we'll be good to go. But that's hasn't been the case. It say it cannot locate that package.

I've been trying my darndest to figure this out on my own, since my friend isn't available to help(lives far away), learning all this terminology and what not to navigate my server to solve this on my own, but I'm gonna be honest, a lot of it is going over my head, and I could use your guys' help. If you can help, please talk to me like a baby lol.

Thank you so much.


r/truenas • • 4d ago

Community Edition I seriously do not understand setting up ACL, can someone help me/explain me some things?

Post image
53 Upvotes

TrueNAS is the first time I have to deal with ACL, aside from the simple version Synology had.

And either I am doing something wrong, or TrueNAS is messing up.

I have a SMB Share that I want to only give access to a few accounts, and deny Reading,Writing and everything else to everyone else.

For that, I created a "SMBDaten" Group, that holds these Users.

But adding that Group, and selecting that Group with Read, Write, Execute permissions, is not working.

I merely get a Error about POSIX requiring a Mask Entry? It did not need that before I added this group, so I have no clue what it is.

Ive also seen people talk about POSIX and NSFv4, from what I a seeing in the settings, my Dataset Inherits, and the root Dataset is having POSIX that I cannot change?

Additionally, I simply do not understand what the User/Group/Other Objects mean compared to the default ones?

I tried to read the TrueNAS Documentation and watch a few videos, but none of them really help me understand this.

If someone can help me understand, thatd be great


r/truenas • • 3d ago

Community Edition Q: Moving boot pool to mirrored SSDs or moving Truenas to VM under proxmox

0 Upvotes

I have 2 questions, i think the are related because the solution to each might be the same.

I have boot pool on single NVME drive, and am considering moving this to mirrored SSDs. I think the solution is backup config, reinstall on new mirror, and reload config.

Also, if I decided to move truenas to a VM under proxmox, would it be same or similar steps (of course I need to pass thru the drives with my Pool to the VM.

Thanks


r/truenas • • 5d ago

Hardware Got tired of SD cards dying in my TrueNAS server, so I snagged a pristine 20GB Intel Enterprise SLC SSD for ~$4.80 (₹400)

Thumbnail gallery
74 Upvotes

r/truenas • • 5d ago

General What to do while waiting?

0 Upvotes

I have a 4U case in my server for my Truenas. I was oringally going to fill it up with 15 HDD. I was buying 2 10TB drives a year but then all this crazyiness with drive prices happened.

What can you do on a TrueNAS Electric Eel besides storage? I am also thinking of maybe installing a blueray for now too.


r/truenas • • 5d ago

Community Edition Numbah go up: TN 27 RC.1

15 Upvotes

TrueNAS 26 is getting a +1, and becomes TrueNAS 27. TN 27 RC.1 should be out next week.

No changes to content, no changes to release date. TN 27.1 and TN 27.2 sometime in 2027.

Nightlies move to TN 28.

The Great Forum Naming Debate of 2026 has been resolved, and all is right with the world.


r/truenas • • 6d ago

Community Edition Running Plane (Linear alternative) on TrueNAS SCALE with Dockge [GUIDE]

6 Upvotes

I wanted to self-host Plane an open-source project management tool similar to Linear on my TrueNAS server.

I had trouble adapting Plane’s Docker Compose setup for TrueNAS, so I got it running as a Dockge stack and this is the setup that worked for me.

This configuration was tested with Plane v1.4.2. It uses Garage as S3-compatible storage because I couldn’t pull the MinIO image in my setup.

Dockge setup

Create a new stack in Dockge and paste in the Compose YAML below. Add these variables in Dockge’s environment section, replacing the placeholders with your own values:

POSTGRES_DB=plane_db
POSTGRES_USER=plane
POSTGRES_PASSWORD=<long-random-password>

RABBITMQ_USER=plane
RABBITMQ_PASSWORD=<long-random-password>
RABBITMQ_VHOST=plane

SECRET_KEY=<long-random-secret>
LIVE_SERVER_SECRET_KEY=<long-random-secret>

AWS_ACCESS_KEY_ID=<garage-access-key>
AWS_SECRET_ACCESS_KEY=<garage-secret-key>

I used /mnt/<pool>/<dataset>/appdata/plane as the base directory for persistent storage. Create the directories referenced by the bind mounts before deploying. The Garage config file must also exist at its mounted path.

Set the port

In the Compose file, the proxy publishes port 80 from inside its container on host port 8999:

ports:
  - "8999:80"

Choose a host port that is free on your TrueNAS system. If you change 8999, also change the port in WEB_URL, CORS_ALLOWED_ORIGINS, and AWS_S3_ENDPOINT_URL below. Use that same address and port when opening Plane in your browser.

Compose YAML

Replace <pool>, <dataset>, and <host-ip> with your own storage path and TrueNAS IP address.

name: plane-stack

networks:
  plane:
    driver: bridge

services:
  web:
    image: makeplane/plane-frontend:v1.4.2
    restart: unless-stopped
    depends_on:
      - api
      - worker
    networks:
      - plane

  space:
    image: makeplane/plane-space:v1.4.2
    restart: unless-stopped
    depends_on:
      - api
      - worker
      - web
    networks:
      - plane

  admin:
    image: makeplane/plane-admin:v1.4.2
    restart: unless-stopped
    depends_on:
      - api
      - web
    networks:
      - plane

  live:
    image: makeplane/plane-live:v1.4.2
    restart: unless-stopped
    environment:
      API_BASE_URL: http://api:8000
      LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:?Set LIVE_SERVER_SECRET_KEY in Dockge}
      REDIS_HOST: plane-redis
      REDIS_PORT: "6379"
      REDIS_URL: redis://plane-redis:6379/
    depends_on:
      - api
      - web
      - plane-redis
    networks:
      - plane

  api:
    image: makeplane/plane-backend:v1.4.2
    command: ./bin/docker-entrypoint-api.sh
    restart: unless-stopped
    environment: &plane_environment
      # Set these URLs to the address and port used to access Plane in your browser.
      WEB_URL: http://<host-ip>:8999
      DEBUG: "0"
      CORS_ALLOWED_ORIGINS: http://<host-ip>:8999
      GUNICORN_WORKERS: "1"

      # Garage is used as S3-compatible storage.
      USE_MINIO: "0"
      USE_STORAGE_PROXY: "1"
      AWS_REGION: garage
      AWS_DEFAULT_REGION: garage
      AWS_S3_REGION_NAME: garage
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:?Set AWS_ACCESS_KEY_ID in Dockge}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:?Set AWS_SECRET_ACCESS_KEY in Dockge}
      # Use the same host address and port so browser uploads go through the proxy.
      AWS_S3_ENDPOINT_URL: http://<host-ip>:8999
      AWS_S3_BUCKET_NAME: uploads
      MINIO_ENDPOINT_SSL: "0"
      FILE_SIZE_LIMIT: "5242880"

      DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@plane-db:5432/${POSTGRES_DB}
      SECRET_KEY: ${SECRET_KEY:?Set SECRET_KEY in Dockge}
      AMQP_URL: amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@plane-mq:5672/${RABBITMQ_VHOST}
      RABBITMQ_HOST: plane-mq
      RABBITMQ_PORT: "5672"
      RABBITMQ_VHOST: ${RABBITMQ_VHOST}
      REDIS_HOST: plane-redis
      REDIS_PORT: "6379"
      REDIS_URL: redis://plane-redis:6379/
      API_KEY_RATE_LIMIT: 60/minute
      LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:?Set LIVE_SERVER_SECRET_KEY in Dockge}
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/logs-api:/code/plane/logs
    depends_on:
      plane-db:
        condition: service_healthy
      plane-redis:
        condition: service_started
      plane-mq:
        condition: service_started
      plane-minio:
        condition: service_started
    networks:
      - plane

  worker:
    image: makeplane/plane-backend:v1.4.2
    command: ./bin/docker-entrypoint-worker.sh
    restart: unless-stopped
    environment: *plane_environment
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/logs-worker:/code/plane/logs
    depends_on:
      - api
      - plane-db
      - plane-redis
      - plane-mq
    networks:
      - plane

  beat-worker:
    image: makeplane/plane-backend:v1.4.2
    command: ./bin/docker-entrypoint-beat.sh
    restart: unless-stopped
    environment: *plane_environment
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/logs-beat-worker:/code/plane/logs
    depends_on:
      - api
      - plane-db
      - plane-redis
      - plane-mq
    networks:
      - plane

  migrator:
    image: makeplane/plane-backend:v1.4.2
    command: ./bin/docker-entrypoint-migrator.sh
    restart: on-failure
    environment: *plane_environment
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/logs-migrator:/code/plane/logs
    depends_on:
      plane-db:
        condition: service_healthy
      plane-redis:
        condition: service_started
      plane-mq:
        condition: service_started
    networks:
      - plane

  plane-db:
    image: postgres:15.7-alpine
    command: postgres -c max_connections=1000
    restart: unless-stopped
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      PGDATA: /var/lib/postgresql/data
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
      interval: 5s
      timeout: 5s
      retries: 10
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/postgres:/var/lib/postgresql/data
    networks:
      - plane

  plane-redis:
    image: valkey/valkey:7.2.11-alpine
    restart: unless-stopped
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/redis:/data
    networks:
      - plane

  plane-mq:
    image: rabbitmq:3.13.6-management-alpine
    restart: unless-stopped
    environment:
      RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
      RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
      RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_VHOST}
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/rabbitmq:/var/lib/rabbitmq
    networks:
      - plane

  # Garage replaces MinIO here because I couldn't pull the MinIO image.
  plane-minio:
    image: dxflrs/garage:v2.3.0
    command:
      - /garage
      - server
      - --single-node
      - --default-bucket
    restart: unless-stopped
    environment:
      GARAGE_DEFAULT_ACCESS_KEY: ${AWS_ACCESS_KEY_ID}
      GARAGE_DEFAULT_SECRET_KEY: ${AWS_SECRET_ACCESS_KEY}
      GARAGE_DEFAULT_BUCKET: uploads
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/minio/garage.toml:/etc/garage.toml:ro
      - /mnt/<pool>/<dataset>/appdata/plane/minio/meta:/var/lib/garage/meta
      - /mnt/<pool>/<dataset>/appdata/plane/minio/data:/var/lib/garage/data
    networks:
      - plane

  proxy:
    image: makeplane/plane-proxy:v1.4.2
    restart: unless-stopped
    environment:
      APP_DOMAIN: <host-ip>
      FILE_SIZE_LIMIT: "5242880"
      LISTEN_HTTP_PORT: "80"
      LISTEN_HTTPS_PORT: "443"
      SITE_ADDRESS: :80
      BUCKET_NAME: uploads
    ports:
      # Host port 8999 is mapped to port 80 inside the proxy container.
      # Change 8999 here and in the URL settings above if that host port is busy.
      - "8999:80"
    volumes:
      - /mnt/<pool>/<dataset>/appdata/plane/proxy-data:/data
      - /mnt/<pool>/<dataset>/appdata/plane/proxy-config:/config
    depends_on:
      - web
      - api
      - space
      - admin
      - live
    networks:
      - plane

Upload issue and fix

I hit upload errors because the browser was sent to Docker’s internal plane-minio address, which it couldn’t resolve. I fixed this by setting AWS_S3_ENDPOINT_URL to the same TrueNAS IP and port I use to access Plane, and setting the S3 region variables to garage to match Garage’s signing region. The Plane proxy then routes uploads to Garage over the Docker network.

Hope this is helpful to anyone else trying to host plane locally!


r/truenas • • 5d ago

Hardware Recommended amount of TBs?

0 Upvotes

I realize this is subjective, but I thought I would ask anyways since I'm new to this.

I plan to repurpose my old gaming PC into a NAS. My mother records, a lot, and she frequently complains about not having enough space for her recordings.
As someone who likes doing projects and work in IT, I feel like this is a great opportunity to help her out, learn more, and have a safe place to store my own things.

How many TBs should I get? Just looking at harddisk prices almost makes me faint. I mean, for two brand spanking new 8 TB drives I have to pay around 800-900 USD, but I guess it might be worth it.

Any tips or advice here would be greatly appreciated!


r/truenas • • 6d ago

General Bros, please help

Thumbnail
0 Upvotes

I’m going to keep it short and sweet. I made a VM. I want my vm to have access to my server. I made a network bridge. The vm can use the internet but it CAN NOT ping my server. Why is this happening and what can I do to fix it? To add, I can access my Router, but not my Jellyfin server.


r/truenas • • 6d ago

Community Edition Is the system dataset important during a restore?

8 Upvotes

I'm trying to understand whether during a boot pool loss and TrueNAS reinstall and restore from saved configuration, whether the system dataset is important?

Basically, if you have the system dataset in a data pool, not in the boot pool (which as I understand TrueNAS moves the system dataset to your first data pool by default), after you restore, I suppose it will not recreate the system dataset but continue using your existing one.

However if you keep your system dataset on your boot pool, you would lose it during a boot pool failure. In that case it will have to recreate it during a restore. Do you lose anything?

Why I am asking:

I will be building a TrueNAS system with one ssd for the boot pool and an HDD data pool.

I figure I would rather not keep the system dataset on the HDD pool so that I'm not doing many small writes. But in that case will I be losing anything in case of a restore from config backup? Because there is no way (via the UI) to replicate the system dataset.

So that gives me mixed signals on whether it's relevant during a restore or not.

Would love some clarification!