DailyTxT logo

DailyTxT

  •  0 ratings
In category: Miscellaneous

About DailyTxT

Encrypted Diary Web-App to save your personal memories of each day. Includes a search-function and encrypted file-upload.

  •   476  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: N/A  
  •   N/A  
  •   N/A  
  •  Latest commit: N/A  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about DailyTxT

Docker Image Version (latest by date) Docker Pulls GitHub "Buy Me A Coffee"

DailyTxT

DailyTxT is an encrypted Diary Web-App to write down your stories of the day and to find them again easily. It is written in Python Flask (Backend) and Vue.JS (Frontend) and meant to be run by Docker.

You should definitely take a quick look at How to Use to see all the hidden features.

❗ As I'm now heavily working on schoco in my spare time, there probably won't be coming any new features to DailyTxT in the next months!

💬 Please simply open a new issue if you have any information, problem, new feature idea, new translation or anything else! I usually reply quickly and the project will have long support - especially security support - (unless marked as deprecated) as I use it regularly myself.

⚠️ Please note when submitting ideas: The basic text-layout will not be changed -> Only one plain text will be saved for each day, to keep things simple!

Chapters

Features

  • Encryption: Everything you write is encrypted before it's written to the server's storage. Even the admin can't read your private stuff!
  • File-Upload: You can upload arbitrary files for each day (128 MB max each). They are stored encrypted on the server as well.
  • Search: Support your memory by easily scanning your notes for any keyword and rediscovering details you may have almost forgotten.
  • Multi-Language-Support: The Web-App is currently available in German, English and Spanish translation. The language gets detected and selected automatically based on your browser's settings. More languages are easy to add - iff you provide me with the language-files! See client/src/lang/translations
  • Mobile: Responsive design for easy use on mobile screen. Additionally: allows installation "A2HS" (Add 2 Home Screen)
  • Multi-User-Spport: You can create multiple User Accounts. Each account uses its own encryption key - so there is no risk for a data breach.
  • Backup & Restore: You can export all data (decrypted) for backup-reasons in a zip-file and reimport the data later by uploading the zip.
  • Templates: Create templates, which you can reuse every day.
  • If you came from journey.cloud, you could try this script to import your text to DailyTxT.

How to Use

There are two cool Shortcuts you should know:

  • Move back/forth one day: Alt + / Alt +
  • Select the search field: Ctrl + F

DailyTxT Description

Note on backup & restore:

You can only reimport/restore all data at once, that was exported before, it's not selective! The restored data is then the most recent data for each day and any previous data for that day was moved to the day's history.

Installation

Quickstart

Simply use the docker-compose.yml file from the repo. Adapt it to your needs and run

docker-compose up -d

More detailed Installation

DailyTxT is intended to be run by Docker. There is an official docker image.

Use the docker-compose.yml file in this repo and adapt it. You see it here:

version: "3"

services:
  dailytxt:
    image: phitux/dailytxt:latest
    container_name: dailytxt
    restart: always
    environment:
      # That's the internal container-port. You can actually use any portnumber (must match with the one at 'ports')
      - PORT=8765

      - SECRET_KEY=<openssl rand -base64 32>

      # Set it to False or remove the line completely to disallow registration of new users.
      - ALLOW_REGISTRATION=True

      # Use this if you want the json log file to be indented. Makes it easier to compare the files. Otherwise just remove this line!
      - DATA_INDENT=2

      # Set after how many days the JWT token will expire and you have to re-login. Defaults to 30 days if line is ommited.
      - JWT_EXP_DAYS=60

      # Enable/disable a feature of DailyTxT to auto-check maximal once per hour if there's a newer version of DailyTxT available. Defaults to True if line is ommited.
      - ENABLE_UPDATE_CHECK=True
    ports:
      - "127.0.0.1:<host_port>:8765"
      # perhaps you only want:
      # "<host_port>:8765"
    volumes:
      - "</save/my/dailytxt-files/here/>:/app/data/"
      # Or perhaps if using on a windows enviroment:
      # "C:/Users/example/dailytxt/:/app/data"

There are four important things that you should adapt to your needs:

  • Generate a secret_key by running openssl rand -base64 32 in your bash
  • You probably want to allow the registration on the first run, generate the necessary accounts, and then restart the container with disallowed registration!
  • Choose the port on your localhost.
  • Select a path, where your diary-files are saved beyond the container lifetime.

Then simply run

docker-compose up -d

If you do NOT use docker-compose, then simply run the following equivalent from bash (and see the info above to adapt it to your needs!):

docker run -p 127.0.0.1:<host_port>:8765 -e "PORT=8765" -e "SECRET_KEY=<openssl rand -base64 32>" -e "ALLOW_REGISTRATION=True" -v </save/my/dailytxt-files/here/>:/app/data --name dailytxt -d phitux/dailytxt:latest

ProxyPass

You will probably proxypass the container via Nginx or Apache2. Here is an example apache-configuration (which of course needs to be slightly adapted):

<VirtualHost *:443>
    ServerName dailytxt.mydomain.tld

    SSLEngine On
    <MY-CERT-PATHS.........>

    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    Header append X-FRAME-OPTIONS SAMEORIGIN

    ProxyPreserveHost On
    ProxyRequests off
    AllowEncodedSlashes NoDecode
    ProxyPass / http://localhost:8007/ nocanon
    ProxyPassReverse / http://localhost:8007/
</VirtualHost>

You can now (Version >= 1.0.4) also run DailyTxT on a subpath.

---

Changelog

1.0.12

(2023_02_05)

- Updated spanish translation
- Updated several packages

1.0.11

(2023_02_03)

- Bugfix: Search and Export didn't work when a template was existing (sorry for bad testing 🙈)

1.0.10

(2022_11_02)

- Moved Settings to new separate settings-page
- Added Feature to create templates and to insert them with one (well, it's two) clicks
- Safety strengthened: Export only possible with password confirmation
- Minor CSS fixes

1.0.9

(2022_05_14)

- Added new environment variable 'ENABLE_UPDATE_CHECK' (see above)
- Added button to delete ALL data of the selected day
- Changes on the Service Worker (PWA) to get quicker client-update after the server was already updated (will unfortunately only take effekt in the next version after 1.0.9).
- Bugfix of a possible race-condition
- Bugfix: search didn't work in a specific case of an 'empty' log
- Bugfix: Internal server-errors no longer falsely show the message that a 'authentication is required'

1.0.8

(2022_02_06)\ Actually a big update!

- Added spanish translation [1]
- Added possibility to reimport (restore) data, that was exported before! 
- Added possibility to create Backup Codes. They work like one-time passwords.
[1]: Thanks to @SmartPhoneLover


1.0.7

(2022_01_12)

- Added image preview for uploaded image-files [1]
- Bugfix: couldn't save text, when there was not yet any text for this day BUT already an uploaded file.
- Added automatic update-check with notification for new docker versions (this is sort of beta, let's see how well it works...)
[1]: Thanks to @rhld16


1.0.6

(2021_12_12)

Docker image size was drastically reduced by new multi-stage build.
Thank you very much @rhld16!


1.0.5

(2021_12_12)

Now automatically redirects (in most cases) to login-page when the Webtoken expired.


1.0.4

(2021_12_12)

Added possibility to run application on a subpath
Thanks to @rhld16's PR


1.0.3

Added two new environment variables:
1. DATA_INDENT [1]
2. JWT_EXP_DAYS
(see explanation above)
[1]: Thanks to @bogosj's PR


1.0.2

Minor CSS Updates.
Exported Zip now also includes the history texts.

1.0.1

Initial Release

License

MIT, see the License-File.

Comments (0)

Please login to join the discussion on this project.

DailyTxT Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

Dashboard

in Personal Dashboards
 6k    0    0    0  

Audiobookshelf

in Audio Streaming
 6k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

Monica logo
Monica cover

Monica

Personal relationship manager, and a new kind of CRM to org…

MailyGo logo
MailyGo cover

MailyGo

MailyGo is a small tool written in Go that allows to send H…

revealjs logo
revealjs cover

revealjs

Framework for easily creating beautiful presentations using…