GithubHelp home page GithubHelp logo

m0ngr31 / dailynotes Goto Github PK

View Code? Open in Web Editor NEW
695.0 15.0 43.0 2.3 MB

App for taking notes and tracking tasks on a daily basis

License: MIT License

Python 29.89% JavaScript 1.27% HTML 2.53% Vue 51.50% TypeScript 13.63% Shell 0.25% Dockerfile 0.40% Mako 0.52%
flask vue docker typescript

dailynotes's Introduction

DailyNotes: Daily tasks and notes in Markdown

Current version: 1.0-beta18

About

The idea for this app came from using my Hobonichi Techo planner every morning to write down what I needed to accomplish that day & using it for scratching down random thoughts and notes as the day went on. The closest thing I've seen to an app for replacing this system is Noteplan, but I don't use a Mac or an iOS device, and it's not self-hostable, so I decided to write my own.

Since I had the need for keeping track of to-dos throughout the day, regular Markdown didn't work for me since it doesn't natively support tasks. So as an alternative I'm using Github Flavored Markdown (GFM). I really wanted it to feel like an actual text editor and not just a textbox, so I decided to use CodeMirror to handle all the input. Fira Code is used to provide font ligatures. Some other nice features include code highlighting, text/code folding, and a task list where you can toggle the status of any task from any date or note.

Roadmap

I'd like to try add include at least of some the following features to get to a final v1.0 release:

  • iCal support
  • HTML preview (instead of just markdown)
  • Kanban board for tasks (and new syntax to attach meta info like swimlane and project for each task)
  • Nested tagging

In Action

Here is some screenshots of what it looks like:

Main editor:

Search page:

Task list:

Running

The recommended way of running is to pull the image from Docker Hub.

Docker Setup

Environment Variables

Environment Variable Description Default
API_SECRET_KEY Used to sign API tokens. Will be generated automatically if not passed in.
DATABASE_URI Connection string for DB. Will create and use a SQLite DB if not passed in.
DB_ENCRYPTION_KEY Secret key for encrypting data. Length must be a multiple of 16.

Warning: If changed data will not be able to be decrypted!
Will be generated automatically if not passed in.
PREVENT_SIGNUPS Disable signup form? Anything in this variable will prevent signups. False
BASE_URL Used when using a subfolder on a reverse proxy None
PUID User ID (for folder permissions) None
PGID Group ID (for folder permissions) None

Volumes

Volume Name Description
/app/config Used to store DB and environment variables. This is not needed if you pass in all of the above environment variables.

Docker Run

By default, the easiest way to get running is:

docker run -p 5000:5000 -v /config_dir:/app/config m0ngr31/dailynotes

Development setup

Installing dependencies

You need Python (works on 2 and 3) and Node >= 8 installed

pip install -r requirements.txt
cd client
npm ci

Creating the environment

You can use the environment variables from above, or you can generate new ones by running the following:

./verify_env.py

Keep in mind that since the data is encrypted, if you modify the DB_ENCRYPTION_KEY variable, your data will not be accessible anymore.

Running

During development you need to run the client and server simultaneously

./run.sh
cd client
npm run serve

dailynotes's People

Contributors

chrispratl avatar dependabot[bot] avatar djedi avatar hhhhhojeihsu avatar m0ngr31 avatar marclr avatar voidtek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dailynotes's Issues

Use Black for Python code formatting

Hi,

Black is becoming the de facto standard for formatting Python code (for example Flask is using it).

Using automatic formatter could lower the barrier for potential code contributors (including myself), since it's shifting the burden of choosing and enforcing code format to a tool instead of following subjective style, which doesn't comply PEP8.

TaskPaper Support

Have you considered using TaskPaper as a (hopefully easy?) way to get project and per-task-item tag support? I'd be willing to look at trying to add support for this if it's something you're open to, as I'd love to be able to throw tasks in my notes for a day and then be able to see all of those tasks grouped by project.

Can't Save with ASCII characters

I noticed copying in some commands I new I would need again that it wouldn't save.
Figured out it was the Dashes rather than Hyphens that I copied

Expected Behavior

That the file would save.

Actual Behavior

Message: There was an error saving. Please try again.
Outcome: File doesn't save (obviously)

Steps to Reproduce the Problem

  1. Paste in ASCII characters like –, —, “, ”
  2. Try to save

Logs

[2020-06-27 08:33:31,231] ERROR in app: Exception on /api/save_day [PUT] Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise raise value File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py", line 108, in wrapper return fn(*args, **kwargs) File "/app/app/routes.py", line 74, in save_day note.text = data File "/usr/local/lib/python3.8/site-packages/sqlalchemy/ext/hybrid.py", line 900, in __set__ self.fset(instance, value) File "/app/app/models.py", line 99, in text self.data = aes_encrypt(value) File "/app/app/models.py", line 23, in aes_encrypt return binascii.hexlify(cipher.encrypt(data)) File "/usr/local/lib/python3.8/site-packages/Crypto/Cipher/blockalgo.py", line 244, in encrypt return self._cipher.encrypt(plaintext) ValueError: Input strings must be a multiple of 16 in length

I really like it btw :)

[Request] Docker - Allow to pass User / Group Identifiers

When trying to mount the config_dir I run into permission issues.

I am in no way a Docker expert, and usually rely on linuxserver.io images on our homeserver, e.g. hedgedoc.

Linuxserver.io usually offers the following environment variables: PUID, PGID:

User / Group Identifiers

When using volumes (-v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

Would it make sense to allow this configuration?

A few questions

Firt of all, thanks for making DailyNotes. The project looks exactly like what I was looking for, and I love how easy everything was in terms of setup. I am running in a Docker container, zero issues whatsoever.

I have a few questions:

  1. From the screenshots it looks like I'm potentially running an old version of DailyNotes. I can't see the checkbox icon next to the "+". Is this because the docker hub version is not up to date?
  2. I currently found the note creation a bit confusing. I understand now - after using the tool a bit - that I can have 1 note per day, and I can also create notes that are not date-bound. This was really unclear at the beginning as I thought you could create more than one note per day and visualize them by clicking on the date. I guess that the name of the tool itself, Daily Notes, gave me this impression and expectation. I don't have a clear suggestion, but my gut feeling is that Notes (the non-date bound) should be called something different, always be visible in the sidebar, and the "+" sign should be next to it (rather than on the main top bar).
  3. Could you clarify the design difference between Tags and Projects? When do you imagine users using one rather than the other?

That's it, thank you again for making DailyNotes, the tool is super promising, hope I'll find a way to contribute somehow

A.

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: note.title

I added a second use to my install earlier today, and it looks like two users can't create a note on the same day.

Steps to reproduce:

  1. Log into DailyNotes with user01.
  2. Select today's date in the calendar.
  3. Fill out note.
  4. Save.
  5. Log out.
  6. Log into DailyNotes with user02.
  7. Select today's date in the calendar.
  8. Fill out note.
  9. Save.

Error (From Web):

There was an error saving. Please try again.

Error (From Logs):

[2021-02-22 17:11:42,583] ERROR in app: Exception on /api/save_day [PUT]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlite3.IntegrityError: UNIQUE constraint failed: note.title

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py", line 108, in wrapper
    return fn(*args, **kwargs)
  File "/app/app/routes.py", line 85, in save_day
    db.session.flush()
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/scoping.py", line 163, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2523, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2664, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2624, in _flush
    flush_context.execute()
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
    persistence.save_obj(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
    _emit_insert_statements(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
    result = cached_connections[connection].execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    util.raise_(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: note.title
[SQL: INSERT INTO note (uuid, user_id, data, title, is_date) VALUES (?, ?, ?, ?, ?)]
[parameters: ('7da0c9d329b54385b8dde27d096527a4', 'e8eb9ea720a64def9ab4d9a6e570f2ce', b'-{t[\xdd\xbb\xe5"\xc1\x0f\x12\xb9\xff\xec\x9bM\xed\xf39\x05\xd6)YO\xf0\xcc\x95\xe7\x8b\xd8\x01\xb3\x9d', b'0\x15\x001\n\xc0\xfa\x1c\xd2$', 1)]
(Background on this error at: http://sqlalche.me/e/13/gkpj)

Release 1.0-beta5 not working.

Until yesterday, the docker image of DailyNotes stops to work.

app_1  | Traceback (most recent call last):
app_1  |   File "/usr/local/bin/flask", line 8, in <module>
app_1  |     sys.exit(main())
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 967, in main
app_1  |     cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 586, in main
app_1  |     return super(FlaskGroup, self).main(*args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
app_1  |     rv = self.invoke(ctx)
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
app_1  |     return _process_result(sub_ctx.command.invoke(sub_ctx))
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
app_1  |     return _process_result(sub_ctx.command.invoke(sub_ctx))
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
app_1  |     return ctx.invoke(self.callback, **ctx.params)
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
app_1  |     return callback(*args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
app_1  |     return f(get_current_context(), *args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 425, in decorator
app_1  |     with __ctx.ensure_object(ScriptInfo).load_app().app_context():
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 388, in load_app
app_1  |     app = locate_app(self, import_name, name)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 240, in locate_app
app_1  |     __import__(module_name)
app_1  |   File "/app/server.py", line 1, in <module>
app_1  |     from app import app
app_1  |   File "/app/app/__init__.py", line 21, in <module>
app_1  |     from app import routes, models
app_1  |   File "/app/app/routes.py", line 91, in <module>
app_1  |     def create_note():
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1315, in decorator
app_1  |     self.add_url_rule(rule, endpoint, f, **options)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 98, in wrapper_func
app_1  |     return f(self, *args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1282, in add_url_rule
app_1  |     raise AssertionError(
app_1  | AssertionError: View function mapping is overwriting an existing endpoint function: wrapper
app_1  | Traceback (most recent call last):
app_1  |   File "./verify_data_migrations.py", line 3, in <module>
app_1  |     from app import app, db
app_1  |   File "/app/app/__init__.py", line 21, in <module>
app_1  |     from app import routes, models
app_1  |   File "/app/app/routes.py", line 91, in <module>
app_1  |     def create_note():
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1315, in decorator
app_1  |     self.add_url_rule(rule, endpoint, f, **options)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 98, in wrapper_func
app_1  |     return f(self, *args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1282, in add_url_rule
app_1  |     raise AssertionError(
app_1  | AssertionError: View function mapping is overwriting an existing endpoint function: wrapper
app_1  | [2021-03-01 11:24:23 +0000] [1] [INFO] Starting gunicorn 20.0.4
app_1  | [2021-03-01 11:24:23 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
app_1  | [2021-03-01 11:24:23 +0000] [1] [INFO] Using worker: sync
app_1  | [2021-03-01 11:24:23 +0000] [12] [INFO] Booting worker with pid: 12
app_1  | [2021-03-01 11:24:24 +0000] [12] [ERROR] Exception in worker process
app_1  | Traceback (most recent call last):
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
app_1  |     worker.init_process()
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
app_1  |     self.load_wsgi()
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
app_1  |     self.wsgi = self.app.wsgi()
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
app_1  |     self.callable = self.load()
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
app_1  |     return self.load_wsgiapp()
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
app_1  |     return util.import_app(self.app_uri)
app_1  |   File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
app_1  |     mod = importlib.import_module(module)
app_1  |   File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
app_1  |     return _bootstrap._gcd_import(name[level:], package, level)
app_1  |   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
app_1  |   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
app_1  |   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
app_1  |   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
app_1  |   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
app_1  |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
app_1  |   File "/app/server.py", line 1, in <module>
app_1  |     from app import app
app_1  |   File "/app/app/__init__.py", line 21, in <module>
app_1  |     from app import routes, models
app_1  |   File "/app/app/routes.py", line 91, in <module>
app_1  |     def create_note():
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1315, in decorator
app_1  |     self.add_url_rule(rule, endpoint, f, **options)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 98, in wrapper_func
app_1  |     return f(self, *args, **kwargs)
app_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1282, in add_url_rule
app_1  |     raise AssertionError(
app_1  | AssertionError: View function mapping is overwriting an existing endpoint function: wrapper
app_1  | [2021-03-01 11:24:24 +0000] [12] [INFO] Worker exiting (pid: 12)
app_1  | [2021-03-01 11:24:24 +0000] [1] [INFO] Shutting down: Master
app_1  | [2021-03-01 11:24:24 +0000] [1] [INFO] Reason: Worker failed to boot.

It's not possible to use another release (all release have the same issue).

Are you working to fix this issue?

Only show the current note's tasks in the task list

I don't know if this should be a preference or an update, but it seems like the task list can become unmanageable by showing all tasks. I personally would prefer to only show tasks related to the current note.

Pulled latest from Docker Hub. Seems out of date?

I pulled m0ngr31/dailynotes:latest but I'm missing the checkbox icon next to the plus button at the top and I don't see any options for searching. I feel like I'm on an older version but I don't know how else to force something newer?

Text lost after marking a task complete

I don't know if I have enough details to help troubleshoot this, but I enabled autosave and started writing away.

Then I left the page up in a browser and did some other things. Came back to mark a task as completed and the page lost text that I had written earlier in the day. I was able to "undo" it and bring the text back, and I believe I hit save. After a page refresh, however, the text disappeared again and now I can't recover it.

I wish I had more to share, but the logs don't show anything other than benign warnings re: cache_key.

Otherwise, the project looks great. The UI is excellent.

[Request] Docker hub image tags for version

Hi,

If possible, for future image releases, could you create a tag for the version number (in addition to latest) for those that would prefer to pin a specific version, rather than be tied to "latest".

Some examples:

  • latest
  • 1.0-beta4
  • beta
  • stable

Thanks!

List all notes of selected date / current day

First of all: very good work so far. I love your tool. I use to plan my day by setting up a note for every meeting. But when i need to switch the note for another meeting i have to use the (powerful) search function.

Is there a way to list the notes for the current or selected day?

[Question] dailynotes configuration

  1. Set up DATABASE_URI,
    How to set up database, I tried to use below config to set up mysql database, but it still creates itself a sqlite.
version: "2"
services:
  dailynotes:
    image: m0ngr31/dailynotes:version-1.0-beta6
    container_name: dailynotes
    volumes:
      - {{ dailynotes_data_dir }}:/app/config
    environment:
      - DB_SERVER_HOST=mysql://pi:[email protected]/dailynotes
    ports:
      - {{ http_port }}:5000
    restart: always
  1. Example for /app/config, could you please give us some examples about the config, is config a file or a dir?
  2. Does it need database drives to install to use mysql? what if I would like to use pgsql, do I need to pip install psycopg2, and how? Just like docker exec dailynote pip install psycopg2?

Add a Search icon

It took me a while to find all the features in the screenshots. :) I think a search icon would be helpful. If you don't have any tags to click on, I'm not sure how you would even get to search. Its kind of a mystery navigation as it is.

notes will not save over ssl-https

WHen I use it on localhost it works fine. WHen I use it with the reverse proxy, things don't save. I made a note initially, and it saved. I went back and added more to it, and I saved it, and it confirmed that I saved. However, upon going back to the note, the modifications were not there and only the initial content was there.

It sounds like something needs to be changed on the reverse proxy, but I see no instructions about it.

I am using dailynotes on docker, and my reverse proxy is swag.

edit: actually it doesn't even save on localhost.

update/change user password on SQLite DB

Hi there,

Nice find this little tool, like it a lot. I've been just wondering how to change a given user password if using the SQLite DB.

Let me know,
Cheers and thanks!
o.

ValueError: IV must be 16 bytes long

If I try to save a note for one day, I always get an error-message "There was an error saving. Please try again". In the docker logs I see the python error "ValueError: IV must be 16 bytes long".

I appears if I build the container myself from the cloned github repo, or if I pull the "offical" dockerimage from docker hub. Does anyone other gets these errors?

One complete logoutput is:

server_1  | Traceback (most recent call last):
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
server_1  |     response = self.full_dispatch_request()
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
server_1  |     rv = self.handle_user_exception(e)
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
server_1  |     reraise(exc_type, exc_value, tb)
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
server_1  |     raise value
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
server_1  |     rv = self.dispatch_request()
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
server_1  |     return self.view_functions[rule.endpoint](**req.view_args)
server_1  |   File "/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py", line 108, in wrapper
server_1  |     return fn(*args, **kwargs)
server_1  |   File "/app/app/routes.py", line 72, in save_day
server_1  |     enc_date = aes_encrypt(title)
server_1  |   File "/app/app/models.py", line 18, in aes_encrypt
server_1  |     cipher = AES.new(key, AES.MODE_CFB, key[::-1])
server_1  |   File "/usr/local/lib/python3.8/site-packages/Crypto/Cipher/AES.py", line 95, in new
server_1  |     return AESCipher(key, *args, **kwargs)
server_1  |   File "/usr/local/lib/python3.8/site-packages/Crypto/Cipher/AES.py", line 59, in __init__
server_1  |     blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
server_1  |   File "/usr/local/lib/python3.8/site-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
server_1  |     self._cipher = factory.new(key, *args, **kwargs)
server_1  | ValueError: IV must be 16 bytes long 

Thanks for helping

Export?

Very beautiful app! I understand that it still is in beta, so features will be added. In the roadmap, I did not see any export option. Would be useful to have, I think?

Can't save any entry: "There was an error saving. Please try again."

I just came across this and wanted to give it a go but can't seem to get it to save any notes.

I even tried setting the /app/config folder and the app.db to 777 but still get the same message pop up in the web interface whenever I click the save icon.

Apart from that the docker image appears to be running fine and I can create a user and login fine.

Is there something I've missed? Or even a log file somewhere on the docker that I have missed?

!docker

Asking if we can get instructions on installing without docker please

Would be greatly appreciated

Seaching various tags

Just this. Is it possible to search for multiple tags? If yes, what is the syntax?

[Request] Autosave

Motivation

Using DailyNotes quickly becomes a second nature. Yet, I often forget to hit that save button, and loose information.

Up until now, I have used Apple Notes, which automatically save. It has proven to be the right workflow for me. Offering this as an option would be brilliant.

Add a website?

Can you maybe make a website instead of the current method?

Spoiler alert i really want it!

Feature Request: "Go to Today"

Actually, this are two minor thoughts:

  • When I am somewhere in the calender, I want to jump directly to "Today" without having to set year, month and day by hand.
  • Related: Go to some day in the year say 2014. Now return to "today" - the year setting needs to be adjusted three times...

Thanks for the app though, I really like using it.

[Request] VIM bindings

I have been loving DailyNotes, but my one pet peeve is that there is no VIM bindings mode. I enjoy using VIM, and even if it was just a simple implementation this would be an amazing feature.

[Request] Add Search Icon

Hoping I didnt miss it, but the search feature would be great to have a button at the top to invoke it.

ARM Build Contribution

I have created an ARM build and if possible I'd like to contribute to this project, but I am not sure the right steps to take.

I usually use a script ( BUILD.sh ) to build my multi architecture docker images with Github actions.

I checked your approach and it's a bit different.

Usually the way you create multi architecture images is via buildx. There is a Github Actions step for buildx but I am not very familiar on how to use it, so I leave the best way to do this up to the developer.

The image I've made works on arm and is way smaller than the current one ( 300mb vs 60mb ). Here: https://hub.docker.com/repository/docker/stefangenov/dailynotes/tags?page=1&ordering=last_updated
and the repo:
https://github.com/Michaelpalacce/docker-dailynotes

Support for Mermaid Diagrams

I think it would be super cool if we could somehow implement support for mermaid charts for technical notes/documentation.

Source: https://mermaid.js.org/intro/

I might have time to submit a PR myself, but if someone else has time, I'd super appreciate it!

RTL languages Support

Hello,

Can we have support to rtl languages, maybe automatically switching or using a switch in the upper bar.

PS: I love DailyNotes, and I use it daily. And I hope I'll be able to contribute to it.

Glitching on auto save

Often when I'm typing a few characters will be deleted as I start to type because the systems saves and reloads the page with the saved data.

On auto save, can we make it so it doesn't reload after save?

[Request] First day of the week

I know settings are WIP, but just in case: Please let us change the first day of the week. :-)

Seeing Sunday as first day of the weeks is for me European just reeeaaaly weird. 😀

[Request] Sort when opening notes to a tag/project

I am using tags in my Daily notes - and also in some extra notes not assigned to one day.

When clicking on a tag and seeing all the notes with that tag, I would really like to see them in some order. Ideally for sorting (for me), "Daily" notes get their assigned date as sorting order and other notes the last change date.

sqalchemy errors ; stuck on sign up page

I have a bunch of python sqalchemy errors when installing this ; on Docker Synology using portainer ; it was a simple enough guie I was following . stuck at sign up page . [https://mariushosting.com/how-to-install-dailynotes-on-your-synology-nas/]

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file today at 6:57:58 PM(Background on this error at: https://sqlalche.me/e/14/e3q8)

I have extracted what I feel might be the most relevant code out of the logs ...
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.