Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
5a105a7b29 | |||
c8dfeaec12 | |||
bf2c95bfb6 | |||
4aef5a1b04 | |||
7520b6b1da | |||
d84475ffe9 | |||
8e6ef5e2f6 | |||
8acf812066 | |||
64d5953f60 | |||
f447cbea2d | |||
0cd49a5c17 |
1
.gitattributes
vendored
@@ -1,2 +1 @@
|
|||||||
*.afdesign filter=lfs diff=lfs merge=lfs -text
|
*.afdesign filter=lfs diff=lfs merge=lfs -text
|
||||||
*.svg filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
9
.gitignore
vendored
@@ -1 +1,10 @@
|
|||||||
|
|
||||||
|
# Backend
|
||||||
/target
|
/target
|
||||||
|
|
||||||
|
# Client
|
||||||
|
.DS_Store
|
||||||
|
node_modules
|
||||||
|
/.svelte
|
||||||
|
/build
|
||||||
|
/functions
|
||||||
|
26
CHANGELOG.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.0.2] - 2021-05-02
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- SVG Icons
|
||||||
|
|
||||||
|
## [1.0.1] - 2021-05-02
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Dark mode support
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Don't reload data on wrong password
|
||||||
|
|
||||||
|
## [1.0.0] - 2021-05-02
|
||||||
|
|
||||||
|
Initial release
|
24
README.md
@@ -2,10 +2,18 @@
|
|||||||
<img src="./design/github.svg">
|
<img src="./design/github.svg">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
## About?
|
## About?
|
||||||
|
|
||||||
_cryptgeon_ is an secure, open source sharing note service inspired by [_PrivNote_](https://privnote.com)
|
_cryptgeon_ is an secure, open source sharing note service inspired by [_PrivNote_](https://privnote.com)
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
Check out the demo and see for yourself https://cryptgeon.nicco.io.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- view and time constrains
|
- view and time constrains
|
||||||
@@ -22,7 +30,7 @@ each note has a 512bit generated <i>id</i> that is used to retrieve the note. da
|
|||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
Docker is the easiest way.
|
Docker is the easiest way. There is the [official image here](https://hub.docker.com/r/cupcakearmy/cryptgeon).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
@@ -40,6 +48,20 @@ services:
|
|||||||
- 80:5000
|
- 80:5000
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
1. Clone
|
||||||
|
2. run `npm i` in the root and and client `client/` folders.
|
||||||
|
3. Run `npm run dev` to start development.
|
||||||
|
|
||||||
|
Running `npm run dev` in the root folder will start the following things
|
||||||
|
|
||||||
|
- a memcache docker container
|
||||||
|
- rust backend with hot reload
|
||||||
|
- client with hot reload
|
||||||
|
|
||||||
|
You can see the app under [localhost:3000](http://localhost:3000).
|
||||||
|
|
||||||
###### Attributions
|
###### Attributions
|
||||||
|
|
||||||
Icons made by <a href="https://www.freepik.com" title="Freepik">freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a>
|
Icons made by <a href="https://www.freepik.com" title="Freepik">freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
font-family: 'Fira Mono', monospace;
|
font-family: 'Fira Mono', monospace;
|
||||||
|
|
||||||
--ui-bg-0: #fefefe;
|
--ui-bg-0: #fefefe;
|
||||||
--ui-bg-0-85: #ffffffd9;
|
--ui-bg-0-85: #fefefed9;
|
||||||
--ui-bg-1: #eee;
|
--ui-bg-1: #eee;
|
||||||
--ui-bg-2: #e2e2e2;
|
--ui-bg-2: #e2e2e2;
|
||||||
--ui-text-0: #111;
|
--ui-text-0: #111;
|
||||||
@@ -19,6 +19,17 @@
|
|||||||
--ui-anim: all 150ms ease;
|
--ui-anim: all 150ms ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--ui-bg-0: #111;
|
||||||
|
--ui-bg-0-85: #111111d9;
|
||||||
|
--ui-bg-1: #222;
|
||||||
|
--ui-bg-2: #282828;
|
||||||
|
--ui-text-0: #fefefe;
|
||||||
|
--ui-text-1: #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.error-text {
|
.error-text {
|
||||||
color: var(--ui-clr-error);
|
color: var(--ui-clr-error);
|
||||||
}
|
}
|
||||||
@@ -53,6 +64,13 @@ button {
|
|||||||
transition: var(--ui-anim);
|
transition: var(--ui-anim);
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
|
background: inherit;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
*:disabled,
|
||||||
|
*[disabled='true'] {
|
||||||
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset {
|
fieldset {
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<small>
|
<small disabled={$$restProps.disabled}>
|
||||||
{label}
|
{label}
|
||||||
</small>
|
</small>
|
||||||
<input bind:value {...$$restProps} />
|
<input bind:value {...$$restProps} />
|
||||||
|
BIN
client/src/lib/views/Header/Logo.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 3.8 KiB |
@@ -40,7 +40,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
async function show() {
|
async function show() {
|
||||||
const data = await get(id)
|
const data = note || (await get(id)) // Don't get the content twice on wrong password.
|
||||||
if (needPassword) {
|
if (needPassword) {
|
||||||
try {
|
try {
|
||||||
const key = await getKeyFromString(password)
|
const key = await getKeyFromString(password)
|
||||||
@@ -74,7 +74,11 @@
|
|||||||
<Button type="submit">show note</Button>
|
<Button type="submit">show note</Button>
|
||||||
{#if error}
|
{#if error}
|
||||||
<br />
|
<br />
|
||||||
<p class="error-text">wrong password. could not decipher.</p>
|
<p class="error-text">
|
||||||
|
wrong password. could not decipher.
|
||||||
|
<br />
|
||||||
|
note already destroyed. try again without reloading the page.
|
||||||
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
</form>
|
</form>
|
||||||
{/if}
|
{/if}
|
||||||
|
BIN
client/static/icons/copy-sharp.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 313 B |
BIN
client/static/icons/dice-sharp.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 728 B |
BIN
client/static/icons/eye-off-sharp.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 720 B |
BIN
client/static/icons/eye-sharp.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 474 B |
BIN
client/static/icons/lock-closed-sharp.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 128 B After Width: | Height: | Size: 275 B |
BIN
design/Logo.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 3.8 KiB |
BIN
design/dove.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 3.3 KiB |
BIN
design/github.svg
(Stored with Git LFS)
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 4.0 KiB |
1375
package-lock.json
generated
Normal file
11
package.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"dev:docker": "docker-compose up memcached",
|
||||||
|
"dev:backend": "cargo watch -x 'run --bin cryptgeon'",
|
||||||
|
"dev:front": "npm --prefix client run dev",
|
||||||
|
"dev": "run-p dev:*"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"npm-run-all": "^4.1.5"
|
||||||
|
}
|
||||||
|
}
|