spramij / DailyTxT

Encrypted Diary Web-App

Home Page:https://hub.docker.com/r/phitux/dailytxt/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DailyTxT

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

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

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 memorization by searching all your notes for any keyword to quickly rediscover what you have already forgotten.
  • Multi-Language-Support: The Web-App is currently available in German and English 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 it's own encryption key - so there is no risk for a data breach.

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

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 inteded to be run via Docker. There is an official docker image.

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

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
  ports:
    - "127.0.0.1:<host_port>:8765"
    # perhaps you only want:
    # "<host_port>:8765"
  volumes:
    - "</save/my/dailytxt-files/here/>:/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>

Changelog

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.

About

Encrypted Diary Web-App

https://hub.docker.com/r/phitux/dailytxt/

License:MIT License


Languages

Language:Vue 55.6%Language:Python 31.5%Language:JavaScript 10.6%Language:Dockerfile 1.4%Language:HTML 0.9%