Coder Social home page Coder Social logo

notea's People

Contributors

alexanderschau avatar andreaswittig avatar andreipoe avatar anghunk1 avatar dabenzel avatar dependabot[bot] avatar dym-sh avatar faraoman avatar laontme avatar michelbaie avatar molezz avatar notworkingcode avatar panz3r avatar qingwei-li avatar sbkg0002 avatar tecc avatar tuur29 avatar valiantiam 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

notea's Issues

Bug when development

I tried to add russian locale but i get an error:

error - ./node_modules/heroicons/react/outline/ChevronDoubleLeft.jsx
Module parse failed: Unexpected token (4:9)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|
| function ChevronDoubleLeftIcon(props) {
>   return <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}><path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M11 19l-7-7 7-7m8 14l-7-7 7-7" /></svg>;
| }
|

изображение

OS: Windows 10 20H2
Node: 15.7.0
Yarn: 1.22.10

Steps to reproduce:
Just follow development guide

  1. Clone repo
  2. docker-compose up -d
  3. yarn
  4. yarn dev

Deployment with S3 not working

Hi Everyone,

maybe you can help me out.
I am getting the following error:

[GET] /
12:15:28:97
2021-05-03T10:15:31.525Z	b8e0dad7-2d94-4da3-aa21-e9deb74a77e4	ERROR	AccessDenied: Access Denied
    at deserializeAws_restXmlGetObjectCommandError (/var/task/node_modules/@aws-sdk/client-s3/dist/cjs/protocols/Aws_restXml.js:6184:41)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async /var/task/node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js:6:20
    at async /var/task/node_modules/@aws-sdk/middleware-signing/dist/cjs/middleware.js:12:24
    at async StandardRetryStrategy.retry (/var/task/node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultStrategy.js:56:46)
    at async /var/task/node_modules/@aws-sdk/middleware-logger/dist/cjs/loggerMiddleware.js:6:22
    at async StoreS3.getObject (/var/task/.next/server/pages/index.js:2379:22)
    at async getSettings (/var/task/.next/server/pages/index.js:6795:44)
    at async handler (/var/task/.next/server/pages/index.js:2219:18)
    at async handler (/var/task/.next/server/pages/index.js:6896:17) {
  Code: 'AccessDenied',
  RequestId: '3CEDJNPHK28EFCD7',
  HostId: '9NjH40yi/f2xMWQIkGZuZ4WQ4pV44LIhoh7kQkmEk4NyirxORFh3TluTu17GhwrAUTmVci3PYGY=',
  '$fault': 'client',
  '$metadata': {
    httpStatusCode: 403,
    requestId: undefined,
    extendedRequestId: '9NjH40yi/f2xMWQIkGZuZ4WQ4pV44LIhoh7kQkmEk4NyirxORFh3TluTu17GhwrAUTmVci3PYGY=',
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  }
}
RequestId: b8e0dad7-2d94-4da3-aa21-e9deb74a77e4 Error: Runtime exited with error: exit status 1
Runtime.ExitError

I have deployed notea via vercel.com.

Here are my Environmental variables:
image

The IAM Policy I am using is the following:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketTagging",
                "s3:GetObjectRetention",
                "s3:DeleteObjectVersion",
                "s3:GetBucketLogging",
                "s3:RestoreObject",
                "s3:ListBucket",
                "s3:GetBucketVersioning",
                "s3:GetBucketAcl",
                "s3:ReplicateObject",
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:GetEncryptionConfiguration",
                "s3:GetObjectTagging",
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:PutBucketVersioning",
                "s3:ReplicateDelete",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::notea-jan-backend/*",
                "arn:aws:s3:::notea-jan-backend"
            ]
        }

Does anyone have an idea if I am missing some permission or what else the problem could be?

Thanks a lot.

-Jan

Propper offline functionality/syncing with PWA

Currently the PWA renders offline, but when trying to type text or create a new note, it keeps deleting the text.
This may be able to be done with the Background sync feature in ServiceWorker

Multiple User Support

I guess it can be done by spinning up another instance, but it would be nice to be able to create new users with their own passwords.

Internal Server Error on Docker Method

image

Docker command:

testo101@testo:~$ sudo docker run -d \
>   --name notea \
>   -p 3000:3000 \
>   -e STORE_ACCESS_KEY=AKIAJxxxxxxxxxxZQ \
>   -e STORE_SECRET_KEY=Sv7xxxxxxxxxxxxxxxxxxxxxxxxxxxxftym \
>   -e STORE_BUCKET=notea \
>   -e STORE_REGION=us-east-1 \
>   -e STORE_FORCE_PATH_STYLE=true \
>   -e PASSWORD=notea \
>   cinwell/notea
[sudo] password for testo101: 
Unable to find image 'cinwell/notea:latest' locally
latest: Pulling from cinwell/notea
540db60ca938: Pull complete 
7e50016d5624: Pull complete 
c43b2bfd1b9f: Pull complete 
97029819a1de: Pull complete 
74236504af82: Pull complete 
7560e3ae15b8: Pull complete 
ab919bc89f13: Pull complete 
6081e29b8041: Pull complete 
Digest: sha256:ba75a9425b64fee7c77e07b4fed131c54d35274a30be8089fef59bcacda89a22
Status: Downloaded newer image for cinwell/notea:latest
ba936740feca497449a0bbc3e0e54f0b1ffef084a776d69c0b6127d88b1b2741

Netlify errorType":"Runtime.UnhandledPromiseRejection

Hi,

I'm a journalist testing Notea so that I can recommend to my readers.
I've tried the netlify option and it didin't work for me.
https://edufnotes.netlify.app/

Error message bellow.

How can I fix it?

Best

{"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"TypeError: Cannot read property 'byteLength' of undefined","trace":["Runtime.UnhandledPromiseRejection: TypeError: Cannot read property 'byteLength' of undefined"," at process.<anonymous> (/var/runtime/index.js:35:15)"," at process.emit (events.js:314:20)"," at processPromiseRejections (internal/process/promises.js:209:33)"," at processTicksAndRejections (internal/process/task_queues.js:98:32)"]}

🥳 Feature voting

Hi, there. Thank you for loving Notea. I originally built this app to solve my own needs, I need to be able to control the data and use it at anywhere. I don't care much about the editing experience, so I didn't spend much time on it.

Next, I plan to implement the following features, but I don't have much time to do this. You can vote for what you want most, or comment to add. I want to know what features you want more.






Done:


Unable to connect to Minio backend ECONNREFUSED 500

I'm trying to setup notea with a minio backend on a raspberry pi 4. I am able to get both containers running, but when I access notea via the browser I get errors after logging in saying "Failed to load tree". When I check the docker log I see that the connection to minio was unsuccessfull.

I confirmed that notea can ping minio so the two containers can talk.

Error

{
  name: 'Error',
  message: 'connect ECONNREFUSED 172.18.0.8:9001',
  status: 500,
  stack: 'Error: connect ECONNREFUSED 172.18.0.8:9001\n' +
    '    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16)'
}

Docker Compose

version: '3.7'
services:
  notea:
    container_name: notea
    image: cinwell/notea:latest
    platform: linux/arm64
    init: true
    ports:
      - '3000:3000'
    environment:
      - PASSWORD=My Password
      - STORE_ACCESS_KEY=My Access Key
      - STORE_SECRET_KEY=My Secret Key
      - STORE_BUCKET=notea
      - STORE_END_POINT=http://minio:9001
      - STORE_FORCE_PATH_STYLE=true
      - BASE_URL=192.168.2.52
      - COOKIE_SECURE=false
    volumes:
      - /media/docker/config/notea:/data

Import/Export .md files

I have more than thousand .md files but no idea how to import them to switch to Notea.
And would be really awesome to be able to export all my .md files in one click (maybe all compressed in a zip file).

Cannot Check/Uncheck Boxes on Firefox

Not sure what's happening here, but on Firefox I'm not able to check or uncheck check boxes on notes where on Chrome it's working perfectly fine.

Cant Login

After entering the (correct) password the login page just reloads and asks again for the password.

I see it creates documents in my Minio instance, but i cant get further than this.

Error code: Out of Memory

Yesterday I installed Notea with a minio bucket. Everything worked so far great, until today where I tried to add some notes.
Suddenly, I got an error in Chrome

https://i.neus.xyz/rtRPLq.png
https://i.neus.xyz/ORAHJt.mp4

Same thing happens in MS Edge.

root@DockerServer:/docker/.compose/notea# docker logs Notea
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
info  - Using webpack 5. Reason: no next.config.js https://nextjs.org/docs/messages/webpack5

Unable to see uploaded images in posts

Been using Notea since I first saw it being mentioned on Reddit and thinks it is a great app.

One thing that I can't get around though is that I can upload images just fine but Notea will not render them.

This is my setup.

Notea is running in Docker and is behind my NAS reverse proxy. I access Notea using a URL that I have a SSL certificate for (https://notes..com). This works great.

I run Minio in a different Docker container and that one too is behind a https URL (https://minio..com)

As I said, images are uploading just fine but when Notea tries to go and fetch the image it gets a 403 back from the server and not the temporary redirect (307).

There is nothing in the log about this error.

If I take the URL that Notea is trying to load and paste that directly into the browser an error message from Minio comes up saying that the signature of the request isn't correct.

I have tried to have Notea access my Minio store using a http URL and then I get the redirect (307) but since my Notea app is running under https the browser will not allow the http call.

Any help is appreciated.

Thanks,

Linking between notes

Ability to link between notes manualy/automatically would be great to allow for functionality similar to obsidian notes / Zettelkasten

Code Block adds many extra characters

When doing a codeblock in a bulleted list (it might work elsewhere too) and I put a comment line in my code block, it gets really..werid?

Look at my last code block in my example.

image

[Feature Request] Store notes on non-S3 Backend

I love this project, but I don't want to deal with the overhead of running an S3 server alongside this. Would it be possible to make it so that notes are stored in a human-readable file format directly on the file system? Such as a directory of .md files?

Hosting under a path

I would very much like to host Notea under a path like https://domain.tld/notea/ but setting BASE_URL as such doesn't work.
The first I issue I ran into was logging in. It redirected me to /login when instead it would need to go to /notea/login.

How much work do you think it would be to support this?

I took a look at the login redirect code a bit and found out that libs/server/middlewares/auth.ts doesn't know anything about BASE_URL. Didn't yet have more time to start trying to fix the code myself.

Add directly clickable links

Following an external link form a note is currently somewhat cumbersome, as it requires double-clicking on the link, and then clicking on the external-link icon that appears.

It would be useful if an external-link icon was inserted after the text of each link, so it could be followed immediately.

Info/Warning/Tip notices not rendering correctly in public view

Hi, thank you so much for this awesome project!
For some reason, the notices aren't rendering correctly in the public view.

Here is an example side by side (public on the left, obviously):
notea_notices_not_working

I hope this is just a small rendering issue, so it may be easy to fix?
Please let me know if you need any further information, e.g. to reproduce the issue.

Add a refresh button for syncing notes

While you can just press the refresh button in your broswer, it's not really convenient to sync notes in PWA mode, since there is no dedicated refresh button.

So, it would be appreciated to add a dedicated refresh/sync button on the web page, which lets users sync their notes easily.

Thanks!

Feature Request: provide option for Article Width?

Qingwei,
Thanks for making notea.

Would you consider to support customizable article width? Something like 'double width' or even 'user input width value'. That's something like Notion's 'Full Width'.

Reason is, when I paste a relative 'big' picture or many times, write long code/words, a wider article makes it easy to read. Thanks

Unable login (unable to disable password using reverse proxy)

Hi,

I would like to try this project however currently I am unable to login. 😔

My setup is to user minio instead of S3 + traefik as https proxy to login via https to notea.
Page loads normally asking for password however "test" password passed via variable doesn't work. Please see the error log.

I also tried to disable login page using variable DISABLE_PASSORD(which I would like to replace by sso), however notea still asks for password. I tried both http and https - there is not diference.

However I was able to login without password when I accessed to notea directly eg: http://172.34.0.34:3000

My docker-compose:

version: "3.7"
services:
  notea:
    image: cinwell/notea
    container_name: notea
    environment:
      - STORE_ACCESS_KEY=minioadmin
      - STORE_SECRET_KEY=minioadmin
      - STORE_BUCKET=notea
      - STORE_END_POINT=http://minio:9000
      - STORE_FORCE_PATH_STYLE=true
      - PASSWORD="test"
      - COOKIE_SECURE=true
      - BASE_URL="https://notea.local.lan"
        #- DISABLE_PASSWORD=true
    labels:
      - traefik.enable=true
      - traefik.http.routers.notea.rule=Host(`notea.local.lan`)
      - traefik.http.services.notea.loadbalancer.server.port=3000
      - traefik.http.routers.notea.entrypoints=web-secure
      - traefik.http.routers.notea.tls=true

  minio:
    image: minio/minio
    container_name: minio
    volumes:
      - /data/notea:/data
    command: server /data

error log:

notea-webapp | ready - started server on 0.0.0.0:3000, url: http://localhost:3000
notea-webapp | info  - Using webpack 4. Reason: future.webpack5 option not enabled https://nextjs.org/docs/messages/webpack5
notea-webapp | {
notea-webapp |   name: 'API_ERR_NEED_LOGIN',
notea-webapp |   message: 'Please login first',
notea-webapp |   status: 401,
notea-webapp |   stack: 'API_ERR_NEED_LOGIN: Please login first\n' +
notea-webapp |     '    at APIError.throw (/app/.next/server/pages/index.js:2124:19)\n' +
notea-webapp |     '    at Array.<anonymous> (/app/.next/server/pages/api/auth/login.js:327:41)\n' +
notea-webapp |     '    at loop (/app/node_modules/next-connect/dist/index.cjs:69:47)\n' +
notea-webapp |     '    at next (/app/node_modules/next-connect/dist/index.cjs:74:13)\n' +
notea-webapp |     '    at Array.useCsrf (/app/.next/server/pages/index.js:2046:5)\n' +
notea-webapp |     '    at loop (/app/node_modules/next-connect/dist/index.cjs:69:47)\n' +
notea-webapp |     '    at next (/app/node_modules/next-connect/dist/index.cjs:74:13)\n' +
notea-webapp |     '    at /app/node_modules/next-iron-session/dist/index.js:137:7\n' +
notea-webapp |     '    at processTicksAndRejections (node:internal/process/task_queues:96:5)'

Cheers

API Security Gap

The API endpoint for images doesn't check for the user to be logged in. If someone shares a note and later unshares the note, but the image was opened in a new tab, it can still be accessed from the user history.

direct file system support

The databases mentioned are S3 compatible, having an direct file system support gives you the ability to only run one image and still have the functionality of the package.

reasons for the feature:

  • easier management of files
  • smaller system requirements
  • allows the user to use any file system for storing the data.

Example:

  • having direct file system functionality allows the user to just point to a single folder on their machine and be done with it
  • some tools such as typora.io already have this when all they need to work with markdown files is just to create them in a folder

Given the above I really love the tool itself, having the feature to use the filesystem itself instead of S3 might prove useful for NAS and laptop users where they run the tools they need on said machine.

oracle 免费额度存储S3试了下,似乎不行? 500 Internal Server Error.

.env 新建后修改如下,id和密钥用省略号

STORE_ACCESS_KEY=7e1e5………………4ee2
STORE_SECRET_KEY=pni3q6X……………………VY=
STORE_BUCKET=zzbucket
STORE_END_POINT=https://自己name.compat.objectstorage.ap-chuncheon-1.oraclecloud.com
PASSWORD=123123
STORE_REGION=ap-chuncheon-1
# STORE_FORCE_PATH_STYLE=

Q: 'npm run dev' is good but 'npm run build' emits error

Hi there, I'm a web app newbie, apology if dump question raised.

Want to self-host notea, so I 'git clone' notea repo and did some proper config for minio and notea.

with 'npm run dev', everything is fine, didn't find any problem using notea in my web broser.
however if I did 'npm run build', got below TypeScript error in pages/api/upload.ts, does this matter?

E:\soft\Notea\app>npm run build

> [email protected] build E:\soft\Notea\app
> next build

info  - Using webpack 5. Reason: future.webpack5 option enabled https://nextjs.org/docs/messages/webpack5
Failed to compile.

./pages/api/upload.ts:28:17
Type error: Argument of type 'string | null' is not assignable to parameter of type 'string'.
  Type 'null' is not assignable to type 'string'.

  26 |       0,
  27 |       8
> 28 |     )}${extname(file.name)}`
     |                 ^
  29 |     const filePath = getPathFileByName(fileName)
  30 |
  31 |     await req.state.store.putObject(filePath, buffer, {
info  - Checking validity of types .npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `next build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\X\AppData\Roaming\npm-cache\_logs\2021-05-31T09_49_12_657Z-debug.log

Reverse proxy, security and sharing

I wondered what the best method of securing Notea is while allowing public access to shared links. I have everything setup in Docker with Notea behind a reverse proxy secured with OAuth. In Notea I have the env var DISABLE_PASSWORD=true and allow public access to /share in my reverse proxy.

This successfully secures Notea whilst making shared notes publicly accessible but Notea also calls content from outside /share such as css and js. i.e. /sw.js, /_next/, /api/file. Do I also need to allow public access to this content? I think I'm also running into some CORS issues.

Lastly, what is the recommended method for using images. At the moment, unless I set DIRECT_RESPONSE_ATTACHMENT=true, images upload to minio successfully but are greyed out in Notea and disappear when I refresh the page. I use STORE_END_POINT=http://minio:9000 which docker resolves correctly to my minio container.

If anyone has any suggestions, I'd appreciate it. Thanks.

Disable login page

Hi! I'm setting up Notea on my server which already has a login system implemented via reverse proxy. That means that any request that actually gets through to the Notea backend is already authenticated. Would you consider adding an option to disable the login page and notea-managed authentication in general?

Thanks for the great app!

Issue: 'Search note' does not always work as expected

Hi there
'search note' or I'll call it 'global search' seems broken in this case (highly simplified but still demonstrate the issue):

To reproduce :
I created 3 pages:
page1:
title: CrashDump
content: info about all the crashdump in linux

page2:
title: device
content: the Windows support info for all the

page3:
title ARM test
content: arm info on the doc architecture reference manual

so each page contains the word 'info'. However when I search 'info', only 2 pages are revealed in search result. page3 contains 'info' but not in search result.

search result screenshot
image

Any more info needed? Please let me know.

My Environment:
notea is git cloned just today, yarn install/build. Data back-end is minio. Both notea and minio are natively self-hosted locally on localhost:PORT on my Windows 10 workstation, no docker etc. Thanks.

Drag Block

I'm not sure whether notea design based on block, just like Notion.
If yes, I wish I can drag a block.

Todo list items

Can't tick it off
styling seems to be broken in public view
image

outliner app capabilities in future plans?

something like workflowy (nested bullets) baked into this app might be cool to gain extra traction / popularity. this is definitely already much nicer, it seems to me, than the evernote desktop app. keep up the great work!

so far notea looks real nice! really nice! it's up there as far as i'm concerned with Logseq and Obsidian.

Render HTML

Hi. I'm using Notea and I like the direction it's going in. Everything is working flawlessly for me, but I have a request/suggestion. I use a lot of HTML mixed in with my Markdown, but at the moment the HTML doesn't render with the rest of the markdown. For example:

Screenshot 2021-05-07 160043

Would it be possible to enable the editor to render HTML, or add the option to enable in Settings?

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.