Releases: journiv/journiv-app
v0.1.0-beta.19
What's Changed
- chore: version bump to beta.19 by @swalabtech in #403
- fix: package plus module correctly which were missed earlier by @swalabtech in #404
- chore: update web for beta.19 version bump by @swalabtech in #405
- fix: pin plus python version dep by @swalabtech in #406
❤️ Supporters
Ongoing
One Time
Stay updated
Join subreddit.
Join discord community.
Subscribe to blog posts.
Full Changelog: v0.1.0-beta.18...v0.1.0-beta.19
v0.1.0-beta.18
Withdrawn
Caution
This release has been superseded by 0.1.0-beta.19 and should not be used. A bug was discovered shortly after release. Please upgrade immediately to 0.1.0-beta.19.
What's Changed
- chore: bump version to beta.18 by @swalabtech in #385
- fix: correct media dir name for journiv #389 by @swalabtech in #390
- chore: migrate to uv by @timonrieger in #371
- Add support for ruff and ty by @swalabtech in #393
- fix: use bind mounts #323 by @swalabtech in #394
- Fix dayone media #392 by @swalabtech in #395
- fix: day one moment media #397 by @swalabtech in #398
- Feature/add support for file based secrets by @enricocirignaco in #366
- chore: fix lint by @swalabtech in #399
- chore: update web by @swalabtech in #402
❤️ Supporters
Ongoing
One Time
Stay updated
Join subreddit.
Join discord community.
Subscribe to blog posts.
New Contributors
- @timonrieger made their first contribution in #371
- @enricocirignaco made their first contribution in #366
Full Changelog: v0.1.0-beta.17...v0.1.0-beta.18
v0.1.0-beta.17
Caution
Update 02/15/2026: Day One Import is broken in beta.17 release. You must use earlier beta.16 to do an import from Day One and then follow migration steps below.
Caution
Beta.17: Introduces updated format of handling entry content. Now journiv stores entries in standard quill delta format
You must backup before upgrade and perform migration actions after upgrade if you care about your entries.
What's Changed
Journiv Beta.17 brings complete backend based draft support, markdown typing mode and bug fixes for immich media handling while editing existing entry.
Upgrade Steps
1. Make Postgres DB backup
This will dump your database backup to file named in journiv_full_backup.sql in current working directory. If you are using sqlite then you can just copy the sqlite db file to a safe location.
docker exec -t journiv-postgres-db pg_dumpall -c -U journiv > journiv_full_backup.sql
2. Journiv Export (Optional)
Make a Journiv export of you journals as back up. You should select "All Journals" and you would need to ask all user on your instances to make the export (if you have multiple users). We will keep this as a secondary backup but the guide below prefer direct docker backup and restore.
3. Stop all Journiv containers
This step will vary depending on your setup and how you run containers.
docker compose down
4. Update Journiv version
Update your Journiv version to 0.1.0-beta.17 docker tag.
5. Start all Journiv services
docker compose up -d
Note: After starting your services if you open your browser and see you entries you would not find any entry content. This is expected. Perform the below migration to migrate your entries.
10. Migrate the journal entries
Caution
You must backup as suggested above before migrating.
Run the following command
docker compose exec app ./journiv-admin migrate content
Now go to Journiv in browser and spot check your journal entries to be showing up as expected. You can do this over couple of hours or days. Once you have ensured that there are no issues in displaying journal entries run the following command to clean up older format.
Note: You must do this clean up step before upgrading to any future versions of Journiv.
docker compose exec app ./journiv-admin migrate content --cleanup
You are all done! As always remember to do a hard refresh in browser after Journiv version upgrades.
Features
- feat: add support for drafts, backend hydration, quill storage and im… by @swalabtech in #372
- feat: add admin cli #358 by @swalabtech in #359
- feat: large dayone import through admin-cli #363 by @swalabtech in #364
Fixes
- fix: Add cli import mocked test and media fixes by @swalabtech in #365
- fix: Remove plus module from workflow by @swalabtech in #374
- fix: delete media which are deleted from content delta by @swalabtech in #373
- [feat] Ability to disable requirement for email_verified claim when using OIDC #375 by @jecal22 in #376
- fix: media deletion on journal delete by @swalabtech in #377
- chore: update web for quill delta, markdown writing, drafts, immich fix by @swalabtech in #378
- fix: local signed url for complete immich copy media by @swalabtech in #379
- fix: content migration for sqlite by @swalabtech in #381
- fix: stop text entry from continuously polling for media status by @swalabtech in #382
- fix: media reslove after text entry loop by @swalabtech in #383
Others
- chore: version bump to 0.1.0-beta.17 by @swalabtech in #357
- chore: update web frontend by @swalabtech in #380
New Contributors
Full Changelog: v0.1.0-beta.16...v0.1.0-beta.17
v0.1.0-beta.16
What's Changed
- chore: bump version to beta.15 by @swalabtech in #338
- Improve large import export handling and fix immich link only import by @swalabtech in #340
- feat: Support HEIC from immich in link mode #215 by @swalabtech in #341
- fix failing unit tests and add github workflow for missing tests by @swalabtech in #342
- fix: video playback for immich after heic support by @swalabtech in #345
- chore: update web by @swalabtech in #346
- chore: update web by @swalabtech in #350
- fix: export import for immich link only media by @swalabtech in #351
- chore: bump version to beta.16 by @swalabtech in #352
- fix: scrolls and memory issue for large timelines and media and horiz… by @swalabtech in #354
Blogpost
Engineering Journiv: Scaling Private Media with Signed URLs and Immich
❤️ Supporters
Ongoing
Stay updated
Join subreddit.
Join discord community.
Subscribe to blog posts.
Full Changelog: v0.1.0-beta.15...v0.1.0-beta.16
Full Changelog: v0.1.0-beta.14...v0.1.0-beta.15
v0.1.0-beta.15
Withdrawn
Caution
This release has been superseded by 0.1.0-beta.16 and should not be used. A bug was discovered shortly after release. Please upgrade immediately to 0.1.0-beta.16, which contains the fix.
Full Changelog: v0.1.0-beta.14...v0.1.0-beta.15
v0.1.0-beta.14
What's Changed
- Immich Integration - Link or Copy your immich media in your journal entries. Watch Demo, Read Doc
Features
- Add support for immich #34 by @swalabtech in #304
- feat: Add support for immich in frontend #34 by @swalabtech in #306
- feat: Add streaming upload support #320 by @swalabtech in #321
- feat: Add support for streaming large video with signed url #320 by @swalabtech in #325
- feat: Add immich album management #317 by @swalabtech in #330
Fixes
- fix: fix immich media #34 by @swalabtech in #305
- fix: Add immich base url config in env template #34 by @swalabtech in #307
- fix: Improve Immich proxy stability with shared HTTPX client #34 by @swalabtech in #309
- fix: update web for immich by @swalabtech in #310
- fix: Cache users in auth dependency #34 by @swalabtech in #311
- fix: Optimize Immich integration client and enable credential caching… by @swalabtech in #312
- fix: update frontend for network image cache #34 by @swalabtech in #313
- fix: ensure proxy url is present in link mode media #34 by @swalabtech in #315
- fix: fix indentation #34 by @swalabtech in #316
- fix: add media count in entry by @swalabtech in #327
- improve thumbnail signed url and proxy video streaming by @swalabtech in #329
- fix: Fix video import of day one import #14 by @swalabtech in #332
- fix: docker container health check reporting by @swalabtech in #334
- fix: album creation for immich in link only mode by @swalabtech in #336
- fix: update web for immich album creation by @swalabtech in #337
Others
- chore: update version to beta.14 by @swalabtech in #335
- Kubernetes Manifest and Steps by @idjohnson in #201
- fix: exclude kubernetes docs from docker container by @swalabtech in #318
- chore: update frontend by @swalabtech in #331
- chore: cleanup configs by @swalabtech in #326
❤️ Supporters
Ongoing
One time
- milktoastrat
- GreenTentacle
- Pawel
Stay updated
Join subreddit.
Join discord community.
Subscribe to blog posts.
New Contributors
- @idjohnson made their first contribution in #201
Full Changelog: v0.1.0-beta.12...v0.1.0-beta.13
Full Changelog: v0.1.0-beta.13...v0.1.0-beta.14
v0.1.0-beta.13
Withdrawn
Caution
This release has been superseded by 0.1.0-beta.14 and should not be used. A bug was discovered shortly after release. Please upgrade immediately to 0.1.0-beta.14, which contains the fix.
v0.1.0-beta.12
What's Changed
This release contains some critical fixes for v0.1.0-beta.11. Please switch to v0.1.0-beta.12 as soon as possible.
- chore: bump version to beta.12 by @swalabtech in #288
- fix: expose env setting through API for frontend #292 by @swalabtech in #293
- fix: update web for getting max file and signup disable flag from bac… by @swalabtech in #296
- chore: add plus release in docker build by @swalabtech in #295
- fix: relax validation to not fail on day one data #297 by @swalabtech in #298
- fix: Issue in loading plus features which are license protected on some machines.
Full Changelog: v0.1.0-beta.11...v0.1.0-beta.12
v0.1.0-beta.11
Caution
Beta.11: Introduces new/updated dependencies and path changes.
You must backup before upgrade and perform maintenance actions after upgrade.
Tip
Journiv Plus Launch: Gives additional features to encourage and thank people for supporting development of Journiv. Plus features are designed with the same privacy-first, self-hosted philosophy as the core Journiv app. Learn more
What's Changed
Journiv Beta.11 brings some dependency changes and updates in preparations for going GA in next one or two releases. Specifically,
- Journiv Beta.11 upgrades it's Postgres dependency from 15 to 18. You must upgrade to Postgres 18 as soon as possible. See details below.
- Journiv Beta.11 replaces its redis dependency for cache to redis alternative Valkey. You must update your compose file or use official compose file.
- Journiv Beta 11 moves all media from
data/mediato per user-id directorydata/media/user-idand adds capability for media de-duplication. You must run media migration script.
Upgrade Steps
1. Journiv Export
Make a Journiv export of you journals as back up. You should select "All Journals" and you would need to ask all user on your instances to make the export (if you have multiple users). We will keep this as a secondary backup but the guide below prefer direct docker backup and restore.
2. Make Postgres DB backup
This will dump your database backup to file named in journiv_full_backup.sql in current working directory. If you are using sqlite then you can just copy the sqlite db file to a safe location.
docker exec -t journiv-postgres-db pg_dumpall -c -U journiv > journiv_full_backup.sql
3. Make Media directory backup
This will dump your media directory to file names journiv_media_backup.tar.gz in your current working directory. If you are using sqlite your container name will be journiv-sqlite-app.
docker exec journiv-postgres-app tar -cz -C /data media | cat > journiv_media_backup.tar.gz
4. Stop all Journiv containers
This step will vary depending on your setup and how you run containers.
docker compose down
5. Delete Postgres DB and Redis data
This steps will vary based on whether you use bind mounts or volume mounts. If you are using sqlite you do not delete your db file. Although you must backup the sqlite db file as mentioned before for later steps.
# adjust the volume name depending on your setup if needed
docker volume rm journiv-backend_postgres_data
docker volume rm journiv-backend_redis_data
6. Update Docker Compose
- It is strongly recommended you use the compose file from repository for your postrges or sqlite based setup.
- If you have your custom compose file then please adjust based on the compose files above.
- Specifically you need to pay attention to the following changes:
- If you are using Postgres then Postgres version should be
postgres:18.1 - You should replace
rediswithvalkey - You should add celery-beat
- You should add
celery-worker(if you don't already have it)
- If you are using Postgres then Postgres version should be
7. Start Postgres 18 ONLY
Do not start all Journiv containers. You should start only Postgres and restore your DB first. If you are using sqlite you can ignore this step.
docker compose up -d postgres
8. Restore Postgres DB
Restore your DB from the backup you created earlier.
cat journiv_full_backup.sql | docker exec -i journiv-postgres-db psql -U journiv -d journiv
Confirm that tables were restored
docker exec -it journiv-postgres-db psql -U journiv -d journiv_prod -c "\dt"
9. Start all Journiv services
docker compose up -d
After starting your services you can go to Journiv in your browser and check everything is working and all your entries were stored. But you must do the next step to migrate your media directory.
10. Migrate the media directory
Go inside the Journiv app container
docker exec -it journiv-postgres-app bash
Run the media migration script
python migrate_media_storage.py --migrate --cleanup
You are all done! Open Journiv in your browser and continue Journaling...
Features
- Add support for tag management, version checking and license by @swalabtech in #244
- feat: Add support for day one import, location and weather by @swalabtech in #261
- feat: Add support for auto save, count badge in calendar and typing d… by @swalabtech in #267
- feat: support historic weather lookup #277 by @swalabtech in #279
- feat: historic weather lookup and weather pdf by @swalabtech in #280
- feat: Add support for password manager #229 by @swalabtech in #281
- feat: Add support to capture and display feels like in weather by @swalabtech in #284
- feat: media import for new path under uid directory by @swalabtech in #286
Fixes
- fix: Add updated time to EntryPreviewResponse by @swalabtech in #250
- fix: format wait time by @swalabtech in #255
- fix: udate web for non-admin license message by @swalabtech in #259
- fix: spacing in paragraphs and other elements #179 by @swalabtech in #265
- fix: allow geolocation microphone and camera on same origin by @swalabtech in #268
- fix: update scripts and refresh values by @swalabtech in #275
- fix: update web for feels like, chart label improvements #42 #247 #283 by @swalabtech in #285
Others
- chore: bump version to 0.1.0-beta.11 by @swalabtech in #224
- chore: update frontend for tag, version and license management by @swalabtech in #251
- fix: init app_version to semantic version always by @swalabtech in #252
- chore: update web by @swalabtech in #256
- Update dependencies (DB and Valkey) to the highest versions by @gf-pl in #249
- chore: update web for dayone, weather and location by @swalabtech in #262
- fix: handle duplicate media in same entry by @swalabtech in #264
- chore: update journiv frontend links by @swalabtech in #274
❤️ Supporters
Ongoing
One time
- cositech
- Robert
- Dylan
- raphaelzell3
- S B
Stay updated
Join subreddit.
Join discord community.
Subscribe to blog posts.
New Contributors
Full Changelog: v0.1.0-beta.10...v0.1.0-beta.11
v0.1.0-beta.10
What's Changed
Features
- feat(tags): Add support for dynamic tag look up and popular tag displ… by @swalabtech in #189
- feat(timeline) Add a timeline and calendar view #192 #60 by @swalabtech in #193
- feat(timeline): Add a timeline and calendar view #192 #60 by @swalabtech in #194
- feat(journal): Add support for default journal #200 by @swalabtech in #212
- feat(calendar): Add calendar view in journal detail screen #199 by @swalabtech in #214
Fixes
- Allow OIDC Login/Linking for Existing Local Users when Sign-up is Disabled by @patricksmith0330 in #171
- Fixes celery worker status display, Preserve newline in markdown, Fix delete journal in journal detail page. by @swalabtech in #181
- fix(timeline): Do not show profile icon on homepage on web #192 by @swalabtech in #197
- Fixes for user role change and deletion by @swalabtech in #211
- fix(streak) Fix streak calc for backdated entry by @swalabtech in #213
Others
- chore: bump version to 0.1.0-beta.10 by @swalabtech in #180
Upgrade Notes
It is highly recommended you create a Journiv export before upgrading.
❤️ Supporters
Ongoing
One time
- JasonFieldz
- Morethanevil
- Mela
Be a part of the journey toward truly personal journaling. Support Journiv!
Full Changelog: v0.1.0-beta.9...v0.1.0-beta.10