Compare commits

...

22 Commits

Author SHA1 Message Date
d63d529d2b Merge branch 'main' of https://github.com/cupcakearmy/cryptgeon 2021-05-02 18:28:48 +02:00
c4f545d1e8 styling 2021-05-02 18:28:46 +02:00
b94588ead4 Delete FUNDING.yml 2021-05-02 17:19:55 +02:00
96657b89d2 Create FUNDING.yml 2021-05-02 17:19:45 +02:00
d05b090252 Create FUNDING.yml 2021-05-02 17:18:48 +02:00
d262a37db6 logo 2021-05-02 17:15:28 +02:00
a66e8033df logo 2021-05-02 17:14:03 +02:00
95ba8d1fed typo 2021-05-02 17:12:12 +02:00
f93be44449 Merge branch 'main' of https://github.com/cupcakearmy/cryptgeon 2021-05-02 17:11:26 +02:00
f73aa1bcf8 screens 2021-05-02 17:11:24 +02:00
6e25bb697f Update README.md 2021-05-02 16:57:56 +02:00
5a105a7b29 changelog 2021-05-02 16:25:11 +02:00
c8dfeaec12 Merge branch 'main' of https://github.com/cupcakearmy/cryptgeon 2021-05-02 16:24:33 +02:00
bf2c95bfb6 move svg from lfs to repo 2021-05-02 16:24:31 +02:00
4aef5a1b04 checkout with lfs 2021-05-02 16:20:08 +02:00
7520b6b1da Update README.md 2021-05-02 16:02:57 +02:00
d84475ffe9 changelog 2021-05-02 15:54:27 +02:00
8e6ef5e2f6 dev docs 2021-05-02 15:52:03 +02:00
8acf812066 Merge branch 'main' of https://github.com/cupcakearmy/cryptgeon 2021-05-02 15:44:56 +02:00
64d5953f60 dark mode 2021-05-02 15:44:46 +02:00
f447cbea2d scripts 2021-05-02 15:44:42 +02:00
0cd49a5c17 Update README.md 2021-05-02 15:24:19 +02:00
25 changed files with 1599 additions and 39 deletions

1
.gitattributes vendored
View File

@@ -1,2 +1 @@
*.afdesign filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text

12
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# These are supported funding model platforms
github: cupcakearmy
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

9
.gitignore vendored
View File

@@ -1 +1,10 @@
# Backend
/target
# Client
.DS_Store
node_modules
/.svelte
/build
/functions

33
CHANGELOG.md Normal file
View File

@@ -0,0 +1,33 @@
# 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.3] - 2021-05-02
### Fixed
- Higher default text area
- Mobile touchups
## [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

View File

@@ -1,16 +1,25 @@
<p align="center">
<img src="./design/github.svg">
<img src="./design/Github.png">
</p>
![Docker pulls badge](https://img.shields.io/docker/pulls/cupcakearmy/cryptgeon)
![Docker image size badge](https://img.shields.io/docker/image-size/cupcakearmy/cryptgeon)
![Latest version](https://img.shields.io/github/v/release/cupcakearmy/cryptgeon)
## About?
_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
- view and time constrains
- in memory, no persistence
- in browser encryption → server cannot decrypt contents
- obligatory dark mode support
## How does it work?
@@ -18,11 +27,11 @@ each note has a 512bit generated <i>id</i> that is used to retrieve the note. da
## Screenshot
![screenshot](./design/screen.jpg)
![screenshot](./design/Screens.png)
## 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
# docker-compose.yml
@@ -40,6 +49,20 @@ services:
- 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
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>

View File

@@ -8,7 +8,7 @@
font-family: 'Fira Mono', monospace;
--ui-bg-0: #fefefe;
--ui-bg-0-85: #ffffffd9;
--ui-bg-0-85: #fefefed9;
--ui-bg-1: #eee;
--ui-bg-2: #e2e2e2;
--ui-text-0: #111;
@@ -19,6 +19,17 @@
--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 {
color: var(--ui-clr-error);
}
@@ -53,6 +64,13 @@ button {
transition: var(--ui-anim);
font-family: inherit;
font-size: inherit;
background: inherit;
color: inherit;
}
*:disabled,
*[disabled='true'] {
opacity: 0.5;
}
fieldset {

View File

@@ -13,15 +13,20 @@
<style>
textarea {
width: 100%;
min-height: 8rem;
min-height: calc(100vh - 30rem);
margin: 0;
padding: 0;
border: 2px solid var(--ui-bg-1);
resize: vertical;
outline: none;
padding: 0.5rem;
}
@media screen and (max-width: 30rem) {
textarea {
min-height: calc(100vh - 25rem);
}
}
textarea:hover,
textarea:focus {
border-color: var(--ui-clr-primary);

View File

@@ -32,7 +32,7 @@
</script>
<label>
<small>
<small disabled={$$restProps.disabled}>
{label}
</small>
<input bind:value {...$$restProps} />

BIN
client/src/lib/views/Header/Logo.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -62,8 +62,19 @@
header {
text-align: center;
margin-top: calc(min(15vh, 6rem));
margin-bottom: 4rem;
margin-top: 4rem;
margin-bottom: 2rem;
}
@media screen and (max-width: 30rem) {
header {
margin-top: 1rem;
margin-bottom: 1rem;
}
header svg {
max-height: 4rem;
}
}
header svg {

View File

@@ -40,7 +40,7 @@
})
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) {
try {
const key = await getKeyFromString(password)
@@ -74,7 +74,11 @@
<Button type="submit">show note</Button>
{#if error}
<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}
</form>
{/if}

BIN
client/static/icons/copy-sharp.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 313 B

BIN
client/static/icons/dice-sharp.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 728 B

BIN
client/static/icons/eye-off-sharp.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 720 B

BIN
client/static/icons/eye-sharp.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 474 B

BIN
client/static/icons/lock-closed-sharp.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 275 B

BIN
design/Github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
design/Logo.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
design/Screens.afdesign (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/Screens.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
design/dove.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
design/github.svg (Stored with Git LFS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

1375
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

11
package.json Normal file
View 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"
}
}