mirror of
https://github.com/standardnotes/app
synced 2026-09-14 03:46:01 -04:00
Compare commits
106
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f14f105703 | ||
|
|
6d7bcd7a8d | ||
|
|
da06f293e0 | ||
|
|
ec4dc1d477 | ||
|
|
2ea9f862fe | ||
|
|
901b1516d3 | ||
|
|
54ae4365a3 | ||
|
|
5b910d4ae4 | ||
|
|
40d9392599 | ||
|
|
a7dfeae650 | ||
|
|
77cbb6b06e | ||
|
|
82a8bcc440 | ||
|
|
83f6cc667d | ||
|
|
d048800b9d | ||
|
|
1f3e741811 | ||
|
|
887402f75f | ||
|
|
d533fb78e0 | ||
|
|
f555fbcaaa | ||
|
|
8332a70384 | ||
|
|
50e85cac15 | ||
|
|
f2369c7555 | ||
|
|
5f0d3ca8b2 | ||
|
|
1d378228d3 | ||
|
|
d04d5d9d8f | ||
|
|
2e487ae6f3 | ||
|
|
0825cedfbe | ||
|
|
05435553a4 | ||
|
|
355c70d7f7 | ||
|
|
ac24256f34 | ||
|
|
10f40f662e | ||
|
|
73e3b3813f | ||
|
|
3ce621e24c | ||
|
|
8a1293f66d | ||
|
|
94772bb7b6 | ||
|
|
c2159e77f7 | ||
|
|
ffb2193924 | ||
|
|
183f68c9c1 | ||
|
|
696b82b9d3 | ||
|
|
7e251262d7 | ||
|
|
c72a407095 | ||
|
|
58138c9a1f | ||
|
|
aabcd62dc2 | ||
|
|
f50a655f9f | ||
|
|
ae3e275cee | ||
|
|
4d994dc79b | ||
|
|
8a4aded995 | ||
|
|
1216b441fb | ||
|
|
f9036168e3 | ||
|
|
1cefaf10ee | ||
|
|
966c15701f | ||
|
|
f259f774c5 | ||
|
|
483cac90cf | ||
|
|
3116ae3883 | ||
|
|
5b3cfddc50 | ||
|
|
5ec8e99781 | ||
|
|
58e751f986 | ||
|
|
8c364f6d58 | ||
|
|
9bc7533010 | ||
|
|
6f7dfaa9f6 | ||
|
|
7b6b2bc5b1 | ||
|
|
36288ad36a | ||
|
|
2573407851 | ||
|
|
baf7fb0019 | ||
|
|
9ea1b35e0f | ||
|
|
98fc870d76 | ||
|
|
4d30331861 | ||
|
|
12e2b83344 | ||
|
|
9e835c3b07 | ||
|
|
12168945f1 | ||
|
|
a827274ac6 | ||
|
|
65c377ba62 | ||
|
|
c02ec9a5f9 | ||
|
|
40b344fd00 | ||
|
|
776fa579c4 | ||
|
|
b174493b4e | ||
|
|
a7a81b15a9 | ||
|
|
135e5924bf | ||
|
|
aaf68a8f73 | ||
|
|
9a297fe8cf | ||
|
|
f06167abc2 | ||
|
|
f125ad3cf1 | ||
|
|
26949749fc | ||
|
|
763f4655a1 | ||
|
|
2e1218c2c1 | ||
|
|
431f1e3bac | ||
|
|
b3c8d6e976 | ||
|
|
7624f95462 | ||
|
|
71e792da35 | ||
|
|
09e08ca899 | ||
|
|
59327a5aa1 | ||
|
|
da65a94d08 | ||
|
|
0a2c90f2c1 | ||
|
|
3f028656f2 | ||
|
|
5706b4d162 | ||
|
|
9d230d4b81 | ||
|
|
b025e394c1 | ||
|
|
6764f3267b | ||
|
|
97cb721909 | ||
|
|
4ad21c4f61 | ||
|
|
a5ccaf1331 | ||
|
|
3c4ba61fee | ||
|
|
5393eb71fe | ||
|
|
0aef604167 | ||
|
|
c6932ba733 | ||
|
|
fc6e36e761 | ||
|
|
66f97f0612 |
@@ -1,15 +0,0 @@
|
||||
.git/
|
||||
.gitignore
|
||||
.eslintcache
|
||||
node_modules
|
||||
dist
|
||||
|
||||
packages/web-server/public/assets
|
||||
packages/web-server/tmp
|
||||
packages/web-server/vendor/bundles
|
||||
|
||||
packages/desktop
|
||||
!packages/desktop/package.json
|
||||
|
||||
packages/mobile
|
||||
!packages/mobile/package.json
|
||||
@@ -0,0 +1,121 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/api"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/components"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/desktop"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/docs"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/encryption"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/features"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/filepicker"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/files"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/icons"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/mobile"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/models"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/releases"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/responses"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/services"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/sncrypto-common"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/sncrypto-web"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/snjs"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/styles"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/toast"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/utils"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/web"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
@@ -19,12 +19,13 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
- run: yarn install
|
||||
cache: 'yarn'
|
||||
- run: yarn install --immutable
|
||||
- run: yarn build:desktop
|
||||
- run: echo APP_VERSION=$(node -p "require('./package.json').version") >> $GITHUB_ENV
|
||||
|
||||
@@ -54,17 +55,18 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'yarn'
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
- name: Install FPM
|
||||
run: sudo gem install fpm -f
|
||||
|
||||
- run: yarn install
|
||||
- run: yarn install --immutable
|
||||
- run: yarn build:desktop
|
||||
|
||||
- run: echo APP_VERSION=$(node -p "require('./package.json').version") >> $GITHUB_ENV
|
||||
@@ -128,12 +130,13 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
- run: yarn install
|
||||
cache: 'yarn'
|
||||
- run: yarn install --immutable
|
||||
- run: yarn build:desktop
|
||||
- run: yarn run webpack --config desktop.webpack.prod.js
|
||||
- run: echo APP_VERSION=$(node -p "require('./package.json').version") >> $GITHUB_ENV
|
||||
@@ -157,13 +160,14 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'yarn'
|
||||
|
||||
- run: yarn install
|
||||
- run: yarn install --immutable
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
|
||||
@@ -14,12 +14,13 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
- run: yarn install
|
||||
cache: 'yarn'
|
||||
- run: yarn install --immutable
|
||||
- run: yarn build:desktop
|
||||
- run: yarn run webpack --config desktop.webpack.prod.js
|
||||
- run: echo APP_VERSION=$(node -p "require('./package.json').version") >> $GITHUB_ENV
|
||||
@@ -42,11 +43,12 @@ jobs:
|
||||
run:
|
||||
working-directory: packages/desktop
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'yarn'
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
cache: yarn
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
run: yarn workspace @standardnotes/docs run build
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
name: Sync Repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Export version from package.json
|
||||
run:
|
||||
echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
echo "${{ secrets.ANDROID_KEYSTORE }}" > keystore.keystore.asc
|
||||
gpg -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch keystore.keystore.asc > android/app/keystore.keystore
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
run: yarn install --immutable
|
||||
- run: yarn build:mobile
|
||||
- name: Ruby Setup for Fastlane
|
||||
uses: ruby/setup-ruby@v1
|
||||
@@ -77,12 +77,12 @@ jobs:
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Export version from package.json
|
||||
run:
|
||||
echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
||||
- name: Install dependencies
|
||||
run: yarn install && yarn install:pods
|
||||
run: yarn install --immutable && yarn install:pods
|
||||
- run: yarn build:mobile
|
||||
- name: Set ssh connection to Github
|
||||
uses: webfactory/[email protected]
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Export version from package.json
|
||||
run: |
|
||||
echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
- name: Ruby Setup for Fastlane
|
||||
uses: ruby/setup-ruby@v1
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
run: yarn install --immutable
|
||||
- run: yarn build:mobile
|
||||
- name: fastlane
|
||||
uses: maierj/[email protected]
|
||||
@@ -66,14 +66,14 @@ jobs:
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Export version from package.json
|
||||
run: |
|
||||
echo "PACKAGE_VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | cut -d "-" -f 1)" >> $GITHUB_ENV
|
||||
- name: Ruby Setup for Fastlane
|
||||
uses: ruby/setup-ruby@v1
|
||||
- name: Install dependencies
|
||||
run: yarn install && yarn install:pods
|
||||
run: yarn install --immutable && yarn install:pods
|
||||
- run: yarn build:mobile
|
||||
- name: Set ssh connection to Github
|
||||
uses: webfactory/[email protected]
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
|
||||
|
||||
@@ -13,9 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
- name: Build
|
||||
@@ -26,26 +24,3 @@ jobs:
|
||||
run: yarn android:bundle
|
||||
- name: Test
|
||||
run: yarn test
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Publish SNJS Docker image for E2E testing
|
||||
run: |
|
||||
yarn docker build @standardnotes/snjs -t standardnotes/snjs:${{ github.sha }}
|
||||
docker push standardnotes/snjs:${{ github.sha }}
|
||||
docker tag standardnotes/snjs:${{ github.sha }} standardnotes/snjs:test
|
||||
docker push standardnotes/snjs:test
|
||||
- name: Run E2E test suite
|
||||
uses: convictional/[email protected]
|
||||
with:
|
||||
owner: standardnotes
|
||||
repo: e2e
|
||||
github_token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
workflow_file_name: testing-with-stable-server.yml
|
||||
wait_interval: 30
|
||||
client_payload: '{"image_tag": "${{ github.sha }}"}'
|
||||
propagate_failure: true
|
||||
trigger_workflow: true
|
||||
wait_workflow: true
|
||||
|
||||
@@ -20,9 +20,7 @@ jobs:
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
cache: 'yarn'
|
||||
|
||||
- name: Setup git config
|
||||
run: |
|
||||
@@ -52,17 +50,20 @@ jobs:
|
||||
run: yarn test
|
||||
|
||||
- name: Login to Docker Hub
|
||||
if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}"
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Publish SNJS Docker image for E2E testing
|
||||
if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}"
|
||||
run: |
|
||||
yarn docker build @standardnotes/snjs -t standardnotes/snjs:${{ github.sha }}
|
||||
docker push standardnotes/snjs:${{ github.sha }}
|
||||
|
||||
- name: Run E2E test suite
|
||||
if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}"
|
||||
uses: convictional/[email protected]
|
||||
with:
|
||||
owner: standardnotes
|
||||
@@ -84,6 +85,7 @@ jobs:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_TOKEN }}
|
||||
|
||||
- name: Publish SNJS Docker image as stable
|
||||
if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}"
|
||||
run: |
|
||||
docker tag standardnotes/snjs:${{ github.sha }} standardnotes/snjs:latest
|
||||
docker push standardnotes/snjs:latest
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
name: SNJS PR — E2E Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'packages/api/**'
|
||||
- 'packages/encryption/**'
|
||||
- 'packages/features/**'
|
||||
- 'packages/filepicker/**'
|
||||
- 'packages/files/**'
|
||||
- 'packages/models/**'
|
||||
- 'packages/responses/**'
|
||||
- 'packages/services/**'
|
||||
- 'packages/sncrypto-common/**'
|
||||
- 'packages/sncrypto-web/**'
|
||||
- 'packages/snjs/**'
|
||||
- 'packages/utils/**'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Publish SNJS Docker image for E2E testing
|
||||
run: |
|
||||
yarn docker build @standardnotes/snjs -t standardnotes/snjs:${{ github.sha }}
|
||||
docker push standardnotes/snjs:${{ github.sha }}
|
||||
docker tag standardnotes/snjs:${{ github.sha }} standardnotes/snjs:test
|
||||
docker push standardnotes/snjs:test
|
||||
- name: Run E2E test suite
|
||||
uses: convictional/[email protected]
|
||||
with:
|
||||
owner: standardnotes
|
||||
repo: e2e
|
||||
github_token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
workflow_file_name: testing-with-stable-server.yml
|
||||
wait_interval: 30
|
||||
client_payload: '{"image_tag": "${{ github.sha }}"}'
|
||||
propagate_failure: true
|
||||
trigger_workflow: true
|
||||
wait_workflow: true
|
||||
@@ -18,6 +18,7 @@ jobs:
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'yarn'
|
||||
- name: Setup git config
|
||||
run: |
|
||||
git config --global user.name "standardci"
|
||||
@@ -44,4 +45,4 @@ jobs:
|
||||
commit-message: "${{ 'chore(deps): upgrade snjs' }}"
|
||||
delete-branch: true
|
||||
committer: standardci <[email protected]>
|
||||
author: standardci <[email protected]>
|
||||
author: standardci <[email protected]>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Web Server Deploy
|
||||
name: Web Deploy
|
||||
|
||||
concurrency:
|
||||
group: prod_environment
|
||||
@@ -7,72 +7,52 @@ concurrency:
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/*web-server*'
|
||||
- '!*standardnotes/*web-server*beta*'
|
||||
- '!*standardnotes/*web-server*alpha*'
|
||||
- '*standardnotes/*web*'
|
||||
- '!*standardnotes/*web*beta*'
|
||||
- '!*standardnotes/*web*alpha*'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
run: yarn install --immutable
|
||||
- name: Build
|
||||
run: yarn build:web-server
|
||||
run: yarn build:web
|
||||
- name: ESLint
|
||||
run: yarn lint
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Copy robots.txt
|
||||
run: cp packages/web-server/public/robots.txt.production packages/web-server/public/robots.txt
|
||||
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
with:
|
||||
name: standardnotes/web
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
tags: "stable,${{ github.sha }}"
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition app-prod --query taskDefinition > task-definition.json
|
||||
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: app-prod
|
||||
image: "standardnotes/web:${{ github.sha }}"
|
||||
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: app-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
- name: Build
|
||||
run: yarn build:web
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Deploy static site to S3 bucket
|
||||
run: aws s3 sync packages/web/dist/ s3://app.standardnotes.com --delete
|
||||
- name: Invalidate CloudFront Cache
|
||||
uses: chetan/invalidate-cloudfront-action@master
|
||||
env:
|
||||
DISTRIBUTION: ${{ secrets.WEBAPP_CLOUDFRONT_DISTRIBUTION_ID }}
|
||||
PATHS: '/*'
|
||||
AWS_REGION: 'us-east-1'
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
|
||||
notify_discord:
|
||||
needs: deploy
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
name: Web Server TestFlight
|
||||
|
||||
concurrency:
|
||||
group: dev_environment
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Build
|
||||
run: yarn build:web-server
|
||||
- name: ESLint
|
||||
run: yarn lint
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: test
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Copy robots.txt
|
||||
run: cp packages/web-server/public/robots.txt.development packages/web-server/public/robots.txt
|
||||
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
with:
|
||||
name: standardnotes/web
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
tags: "latest,${{ github.sha }}"
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition app-dev --query taskDefinition > task-definition.json
|
||||
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: app-dev
|
||||
image: "standardnotes/web:${{ github.sha }}"
|
||||
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: app-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
notify_discord:
|
||||
needs: deploy
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Run Discord Webhook
|
||||
uses: johnnyhuy/actions-discord-git-webhook@main
|
||||
with:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
@@ -1,20 +0,0 @@
|
||||
name: Web Server PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'packages/web-server/**'
|
||||
|
||||
jobs:
|
||||
TestDockerBuild:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
- name: Copy default configuration
|
||||
run: yarn workspace @standardnotes/web-server run sample:env
|
||||
- name: Test build of the image
|
||||
run: docker build -t standardnotes/web:test-build .
|
||||
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Vendored
-1
@@ -4,7 +4,6 @@ undecided:
|
||||
- "@standardnotes/mobile"
|
||||
- "@standardnotes/styles"
|
||||
- "@standardnotes/toast"
|
||||
- "@standardnotes/web-server"
|
||||
- "@standardnotes/advanced-checklist"
|
||||
- "@standardnotes/markdown-visual"
|
||||
- "@standardnotes/autobiography-theme"
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
FROM ruby:2.7.4-alpine3.14
|
||||
|
||||
ARG USERNAME=snjs
|
||||
ARG UID=1001
|
||||
ARG GID=$UID
|
||||
|
||||
RUN apk add --update --no-cache \
|
||||
alpine-sdk \
|
||||
nodejs-current \
|
||||
python3 \
|
||||
git \
|
||||
yarn \
|
||||
tzdata
|
||||
|
||||
RUN addgroup -S $USERNAME -g $GID && adduser -D -S $USERNAME -G $USERNAME -u $UID
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN chown -R $UID:$GID .
|
||||
|
||||
USER $USERNAME
|
||||
|
||||
COPY --chown=$UID:$GID . .
|
||||
|
||||
RUN yarn install
|
||||
|
||||
RUN gem install bundler
|
||||
|
||||
RUN yarn build:web-server
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
ENTRYPOINT [ "./docker/entrypoint.sh" ]
|
||||
|
||||
CMD [ "start" ]
|
||||
@@ -71,18 +71,3 @@ You can configure the `DEFAULT_SYNC_SERVER` environment variable to set the defa
|
||||
```
|
||||
DEFAULT_SYNC_SERVER=https://sync.myserver
|
||||
```
|
||||
|
||||
## Running E2E tests
|
||||
|
||||
In order to run a stable server environment for E2E tests that will is up to date with what we have on production please checkout locally the [e2e repository](https://github.com/standardnotes/e2e).
|
||||
|
||||
To start the server type in the e2e repository:
|
||||
```
|
||||
yarn install --immutable
|
||||
yarn test:stable-server
|
||||
```
|
||||
|
||||
Then once the whole server infra is up and ready for your tests you can run the e2e suite in the local browser by typing (make sure you have built all the packages beforehand):
|
||||
```
|
||||
yarn start:server:e2e
|
||||
```
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
command: start-local
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${PORT}:3001
|
||||
volumes:
|
||||
- .:/app
|
||||
networks:
|
||||
standardnotes_proxy:
|
||||
aliases:
|
||||
- web
|
||||
web: {}
|
||||
|
||||
networks:
|
||||
web:
|
||||
name: web
|
||||
standardnotes_proxy:
|
||||
name: standardnotes
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
COMMAND=$1 && shift 1
|
||||
|
||||
case "$COMMAND" in
|
||||
'start' )
|
||||
echo "Prestart Step 1/1 - Removing server lock"
|
||||
rm -f /app/packages/web-server/tmp/pids/server.pid
|
||||
echo "Starting Server..."
|
||||
yarn start:server:web
|
||||
;;
|
||||
|
||||
'start-local' )
|
||||
echo "Prestart Step 1/4 - Removing server lock"
|
||||
rm -f /app/packages/web-server/tmp/pids/server.pid
|
||||
echo "Prestart Step 2/4 - Cleaning assets"
|
||||
yarn clean
|
||||
echo "Prestart Step 3/4 - Installing dependencies"
|
||||
yarn install
|
||||
echo "Prestart Step 4/4 - Building"
|
||||
yarn build
|
||||
echo "Starting Server..."
|
||||
yarn start:server:web
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Unknown command"
|
||||
;;
|
||||
esac
|
||||
|
||||
exec "$@"
|
||||
+5
-6
@@ -19,18 +19,17 @@
|
||||
"node": ">=12.19.0 <17.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "yarn workspaces foreach -pt --parallel --jobs 10 --verbose --exclude @standardnotes/components-meta run lint",
|
||||
"test": "yarn workspaces foreach -pt --parallel --jobs 10 --verbose --exclude @standardnotes/components-meta run test",
|
||||
"lint": "yarn workspaces foreach -t --verbose --exclude @standardnotes/components-meta run lint",
|
||||
"test": "yarn workspaces foreach -pt --jobs 10 --verbose --exclude @standardnotes/components-meta run test",
|
||||
"clean": "lerna run clean",
|
||||
"build:all": "yarn workspaces foreach -pt --verbose --exclude '{@standardnotes/components-meta,@standardnotes/docs}' run build",
|
||||
"build:all": "yarn workspaces foreach -pt --verbose --exclude '{@standardnotes/docs}' run build",
|
||||
"build:components": "yarn workspaces foreach -pt --verbose --interlaced -R --from @standardnotes/components-meta run build",
|
||||
"build:web": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/web --exclude @standardnotes/components-meta run build",
|
||||
"build:desktop": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/desktop --exclude @standardnotes/components-meta run build",
|
||||
"build:mobile": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/mobile --exclude @standardnotes/components-meta run build",
|
||||
"build:web-server": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/web-server --exclude @standardnotes/components-meta run build",
|
||||
"build:snjs": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/snjs --exclude @standardnotes/components-meta run build",
|
||||
"start:server:web": "lerna run start --scope=@standardnotes/web-server",
|
||||
"start:server:web:localhost": "lerna run start:no-binding --scope=@standardnotes/web-server",
|
||||
"build:services": "yarn workspaces foreach -pt --verbose -R --from @standardnotes/services --exclude @standardnotes/components-meta run build",
|
||||
"start:server:web": "lerna run start --scope=@standardnotes/web",
|
||||
"start:server:e2e": "lerna run start:test-server --scope=@standardnotes/snjs",
|
||||
"prepare": "husky install",
|
||||
"reset": "find . -type dir -name node_modules | xargs rm -rf && rm -rf yarn.lock && yarn install",
|
||||
|
||||
@@ -3,6 +3,17 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.4.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-05)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/api
|
||||
|
||||
## [1.4.6](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* upgrade jest with types to latest version ([09e08ca](https://github.com/standardnotes/app/commit/09e08ca899ba8694cf43292e918c4c204c0d2cb9))
|
||||
* upgrade ts-jest in packages ([71e792d](https://github.com/standardnotes/app/commit/71e792da354ff90335b92758e196075a0f88d060))
|
||||
|
||||
## [1.4.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/api
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/api",
|
||||
"version": "1.4.5",
|
||||
"version": "1.4.7",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
@@ -25,12 +25,12 @@
|
||||
"test:unit": "jest spec --coverage"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/jest": "^28.1.5",
|
||||
"@types/lodash": "^4.14.182",
|
||||
"@typescript-eslint/eslint-plugin": "^5.30.0",
|
||||
"eslint-plugin-prettier": "*",
|
||||
"jest": "^27.5.1",
|
||||
"ts-jest": "^27.1.3"
|
||||
"jest": "^28.1.2",
|
||||
"ts-jest": "^28.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@standardnotes/common": "^1.23.1",
|
||||
|
||||
@@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.7.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-14)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **ste:** revert border radius change ([b174493](https://github.com/standardnotes/app/commit/b174493b4ea3ca164cf5754ab791022b17b612ac))
|
||||
|
||||
## [2.7.6](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/components-meta
|
||||
|
||||
## [2.7.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **components:** additional output in the versioning script ([b3c8d6e](https://github.com/standardnotes/app/commit/b3c8d6e976a96417539c609e59d92877475c557e))
|
||||
* upgrade jest with types to latest version ([09e08ca](https://github.com/standardnotes/app/commit/09e08ca899ba8694cf43292e918c4c204c0d2cb9))
|
||||
* upgrade ts-jest in packages ([71e792d](https://github.com/standardnotes/app/commit/71e792da354ff90335b92758e196075a0f88d060))
|
||||
|
||||
## [2.7.4](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-11)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* focus mode & dynamic panels on small screens ([#1246](https://github.com/standardnotes/app/issues/1246)) ([9d230d4](https://github.com/standardnotes/app/commit/9d230d4b81c92b826ef9e8b89cd7192f5b4c8b13))
|
||||
|
||||
## [2.7.3](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+21
-22
@@ -1,23 +1,22 @@
|
||||
#navigation {
|
||||
flex: none !important;
|
||||
width: 10px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#navigation:hover {
|
||||
flex: initial;
|
||||
width: 200px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#items-column {
|
||||
flex: none !important;
|
||||
width: 270px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#items-column:hover {
|
||||
flex: initial;
|
||||
width: 380px !important;
|
||||
transition: width 0.25s;
|
||||
@media screen and (min-width: 768px) {
|
||||
#navigation {
|
||||
flex: none !important;
|
||||
width: 10px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
#navigation:hover {
|
||||
flex: initial;
|
||||
width: 200px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
#items-column {
|
||||
flex: none !important;
|
||||
width: 270px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
#items-column:hover {
|
||||
flex: initial;
|
||||
width: 380px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
+30
-30
@@ -30,24 +30,24 @@
|
||||
"binary": "5a00749f8930a41541589f704fff2b6e1d84224305750c7880e941085a8fef62"
|
||||
},
|
||||
"org.standardnotes.theme-dynamic": {
|
||||
"version": "1.1.0",
|
||||
"base64": "1214db7ca8962d7f56937c16463ca3131f2073a718f993e47c1dfcf233eefab8",
|
||||
"binary": "6da8d19f03e724b058950eb6869e4fe9c6ba5e57d995e268aecc823a235af43d"
|
||||
"version": "1.1.1",
|
||||
"base64": "74f26661963f857a0dfa2d37d22c371c231bdf468c4cc8662b5bb25337a9b262",
|
||||
"binary": "8353de29ec88472a87fd24349844569e9e468893de40c1fafbb0a237fd7410dd"
|
||||
},
|
||||
"org.standardnotes.code-editor": {
|
||||
"version": "1.3.17",
|
||||
"base64": "2f061eeee557be892a1e6ea536eb715ba13344f1e0726112fefa83d300d1da96",
|
||||
"binary": "47f8d1e1b5aeaf078f8eb3d00ba38adc8e2e3a60b37c9091a2bbd5cdb082d931"
|
||||
"version": "1.4.0",
|
||||
"base64": "927b9165925ef7b1012d110f39238862d0dac5fd25b9468e81989e19c1daebf3",
|
||||
"binary": "dcc2fb1f923ea891e3d7856ff72c70277747ef2051794a0835cc79f9638b6d42"
|
||||
},
|
||||
"org.standardnotes.bold-editor": {
|
||||
"version": "1.3.10",
|
||||
"base64": "0015f9bde6e156cadf20b3ab80c864c6d73fc1de279b863963c24cc4d003c93c",
|
||||
"binary": "deaece4cd37801f796eca2bf37fcccabfc6ddc43581630aa9ed04b9b0f7a7762"
|
||||
"version": "1.4.0",
|
||||
"base64": "ad8e1dc97d49744be986608b1dd9e1205f15a4d1d1613e4a4f4da511944f1938",
|
||||
"binary": "f251b88605da4dc760213c0c7ed90bfccaa380854697bf94cca8b5764c9d976a"
|
||||
},
|
||||
"org.standardnotes.plus-editor": {
|
||||
"version": "1.7.0",
|
||||
"base64": "a63f79a3b6398ab13f8a4e106bbfc06312d31336967bbc5d2aa16c0c94ee08bb",
|
||||
"binary": "fd258ce43577024cbe297904963b1beabe239d053b7666b7e469cf1aaf0abd8d"
|
||||
"version": "1.7.1",
|
||||
"base64": "15e839a3ef30bc666ef9c7f3c682345e426be94a3ee8483146abf029db2336f2",
|
||||
"binary": "08995a1a0518920a81364e4064b7de6d859f2f13dd9b5f6beb518594b6e35be5"
|
||||
},
|
||||
"org.standardnotes.simple-markdown-editor": {
|
||||
"version": "1.4.7",
|
||||
@@ -55,9 +55,9 @@
|
||||
"binary": "1bd2863239e5ce41c56e3ccebe2cbd29c259abbe7124aed656e92d17b5428226"
|
||||
},
|
||||
"org.standardnotes.advanced-markdown-editor": {
|
||||
"version": "1.6.1",
|
||||
"base64": "51a2dc528ac2a6b1b853fa63e4b2c6082a651c7b7ff63baf47befaae5f4ec8f7",
|
||||
"binary": "b6a6a99420bc449dc2798ee292573f6f923b3e03cea022e8c7a5204f061eea58"
|
||||
"version": "1.6.2",
|
||||
"base64": "72f168a6236a7be819a1e945dd1b0fa069082d7c3b1c70724390489934184c26",
|
||||
"binary": "0a5e62fba43ac02c475fa4a9b3dc9c4cbb555fc70ca3fe6a3f29ee3c75954d66"
|
||||
},
|
||||
"org.standardnotes.minimal-markdown-editor": {
|
||||
"version": "1.3.13",
|
||||
@@ -70,29 +70,29 @@
|
||||
"binary": "b621bfd81829a205f2f02e85d446e277ad20e367b92676ec20b3ee59b1bfab3f"
|
||||
},
|
||||
"org.standardnotes.markdown-visual-editor": {
|
||||
"version": "1.1.1",
|
||||
"base64": "6182ced07fbe9281cf46c1b8818213415e6d34d360bb64883514a7179cf1d7e0",
|
||||
"binary": "1a99a8ccac07678d0e2e2423b302e5e98cfb100777c37f1795b7874b2d31dcf9"
|
||||
"version": "1.1.2",
|
||||
"base64": "2645d31c51fa6a198c14a32737ee4045dcbbecb8bdaa1432ca4686cab78834d2",
|
||||
"binary": "c4479f8768f5f6cda41850212a8e03927990adfa33ebd36e29ee6de2335e8e46"
|
||||
},
|
||||
"org.standardnotes.simple-task-editor": {
|
||||
"version": "1.4.1",
|
||||
"base64": "9035b03e068138876802bcd28b1099b6ef22fac5ed51e0a9ec0152327a7f8a16",
|
||||
"binary": "e4549b5b3219de5a5c0799d9b33c815a5bb7d8d974ba45e476dbbe376bfa5937"
|
||||
"version": "1.4.3",
|
||||
"base64": "5e8f767ac00d5a5af9b3650e56230a2446db4656515fb88ee5293da989b0f172",
|
||||
"binary": "7c6f499b8107f80ec5fd84e591c2c33291d1fc6db85f098df4f8308a0cda901d"
|
||||
},
|
||||
"org.standardnotes.token-vault": {
|
||||
"version": "2.2.2",
|
||||
"base64": "08cd824ac63533eb20a2b96029cde3eff5fbb38b6019484c31f9873f5066b6a1",
|
||||
"binary": "dbb73debe4ed67476677fa8ea800ad5f7dbe3c8270243a2be82f790cddaef6aa"
|
||||
"version": "2.2.3",
|
||||
"base64": "bf5c3a2aae3f119043ee744ab5535de4705eeed67d5ecf9e1d7b95817f92bc19",
|
||||
"binary": "8ef8a1eaf19d22b0ac279ad0c4d27b29c057b0f9b0d5c5f4cd6183eb506feaa3"
|
||||
},
|
||||
"org.standardnotes.standard-sheets": {
|
||||
"version": "1.5.0",
|
||||
"base64": "5b91ed423b5c9526f3a6ccb4798feb0935095cb81aa90ae3a5964f0284b7b4c0",
|
||||
"binary": "12b19b16adf7dfb6626be2deaa8fe47a242b6fb15c841d6b12a1427a1a2fbd5e"
|
||||
"version": "1.5.1",
|
||||
"base64": "0ae54799c28a336447a63ddabfe43d0c6e18f8c2cd29cfdb1c0174ab96fde248",
|
||||
"binary": "54a01414a21e46c67fa59c69189a3d34a6548de7539699f2cf0248f9c5059d37"
|
||||
},
|
||||
"org.standardnotes.advanced-checklist": {
|
||||
"version": "0.2.2",
|
||||
"base64": "edadcc92b3c53ab5ca8325ae710b846dde8e19d2dc33f64e6716ef9218cfbd05",
|
||||
"binary": "08e146c4c54e972c4411f367b496c5ef91feb14fd66395fb01336b907d4adf34"
|
||||
"version": "0.2.3",
|
||||
"base64": "2a2ce988902c9fdb7fe507c826bff13592adfe4fbe1c36e8468155730f507573",
|
||||
"binary": "ae614e38946c480256157554d9af542deb0c9741630ad3242becce391991b994"
|
||||
},
|
||||
"org.standardnotes.file-safe": {
|
||||
"version": "2.0.16",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/components-meta",
|
||||
"version": "2.7.3",
|
||||
"version": "2.7.7",
|
||||
"private": true,
|
||||
"author": "Standard Notes.",
|
||||
"main": "dist",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
echo 'Building components from' $(pwd)
|
||||
|
||||
# Exit immediately after an error in any command
|
||||
set -e
|
||||
set -xe
|
||||
|
||||
yarn clean && yarn build:components
|
||||
|
||||
@@ -11,4 +11,4 @@ echo "Packaging component assets and zips..."
|
||||
|
||||
node scripts/package.mjs
|
||||
git add dist
|
||||
(git commit -m 'chore(release): components') || true
|
||||
(git commit -m 'chore(release): components') || true
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [1.4.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Features
|
||||
|
||||
* deprecated editors ([#1166](https://github.com/standardnotes/app/issues/1166)) ([60ca415](https://github.com/standardnotes/app/commit/60ca4150446f9a14bb6a31416686c6d07a7d0cd9))
|
||||
|
||||
## [1.3.10](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-06-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/bold-editor
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/bold-editor",
|
||||
"private": true,
|
||||
"version": "1.3.10",
|
||||
"version": "1.4.0",
|
||||
"main": "dist/dist.js",
|
||||
"scripts": {
|
||||
"skip:lint": "eslint app/ --ext .js",
|
||||
@@ -39,7 +39,7 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "^5.7.3",
|
||||
"webpack-merge": "^5.8.0",
|
||||
"webpack-merge-and-include-globally": "^2.3.4"
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -3,6 +3,13 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.2.3](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* upgrade jest with types to latest version ([09e08ca](https://github.com/standardnotes/app/commit/09e08ca899ba8694cf43292e918c4c204c0d2cb9))
|
||||
* upgrade ts-jest in packages ([71e792d](https://github.com/standardnotes/app/commit/71e792da354ff90335b92758e196075a0f88d060))
|
||||
|
||||
## [0.2.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/advanced-checklist",
|
||||
"version": "0.2.2",
|
||||
"version": "0.2.3",
|
||||
"description": "A task editor with grouping functionality.",
|
||||
"author": "Standard Notes.",
|
||||
"keywords": [
|
||||
@@ -94,7 +94,7 @@
|
||||
"@testing-library/jest-dom": "5.16.2",
|
||||
"@testing-library/react": "12.1.4",
|
||||
"@testing-library/user-event": "13.5.0",
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/jest": "^28.1.5",
|
||||
"@types/lodash": "4.14.179",
|
||||
"@types/node": "17.0.21",
|
||||
"@types/react": "17.0.40",
|
||||
@@ -120,7 +120,7 @@
|
||||
"redux-mock-store": "1.5.4",
|
||||
"source-map-explorer": "2.5.2",
|
||||
"styled-components": "5.3.5",
|
||||
"ts-jest": "27.1.4",
|
||||
"ts-jest": "^28.0.5",
|
||||
"typescript": "4.6.2",
|
||||
"uuid": "8.3.2"
|
||||
}
|
||||
|
||||
+4
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.6.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/markdown-hybrid
|
||||
|
||||
## [1.6.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-06-29)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/markdown-hybrid
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/markdown-hybrid",
|
||||
"private": true,
|
||||
"version": "1.6.1",
|
||||
"version": "1.6.2",
|
||||
"description": "A Standard Notes derived editor that offers full support for Markdown editing.",
|
||||
"main": "dist/dist.js",
|
||||
"author": "Standard Notes <[email protected]>",
|
||||
@@ -40,6 +40,6 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "^5.7.3"
|
||||
"webpack-merge": "^5.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [1.4.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Features
|
||||
|
||||
* deprecated editors ([#1166](https://github.com/standardnotes/app/issues/1166)) ([60ca415](https://github.com/standardnotes/app/commit/60ca4150446f9a14bb6a31416686c6d07a7d0cd9))
|
||||
|
||||
## [1.3.17](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-06-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/classic-code-editor
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/classic-code-editor",
|
||||
"private": true,
|
||||
"version": "1.3.17",
|
||||
"version": "1.4.0",
|
||||
"description": "A code editor for Standard Notes",
|
||||
"main": "dist/main.js",
|
||||
"author": "Standard Notes <[email protected]>",
|
||||
@@ -30,6 +30,6 @@
|
||||
"sn-stylekit": "^2.1.1",
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-merge": "^5.7.3"
|
||||
"webpack-merge": "^5.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.1.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* upgrade jest with types to latest version ([09e08ca](https://github.com/standardnotes/app/commit/09e08ca899ba8694cf43292e918c4c204c0d2cb9))
|
||||
|
||||
## [1.1.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-06-30)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/markdown-visual
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/markdown-visual",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"author": "Johnny Almonte <[email protected]>",
|
||||
"description": "A lightweight WYSIWYG markdown editor for Standard Notes, derived from Milkdown.",
|
||||
"keywords": [
|
||||
@@ -45,7 +45,7 @@
|
||||
"@testing-library/jest-dom": "^5.16.2",
|
||||
"@testing-library/react": "^12.1.4",
|
||||
"@testing-library/user-event": "^13.5.0",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/jest": "^28.1.5",
|
||||
"@types/lodash": "^4.14.179",
|
||||
"@types/marked": "^4.0.2",
|
||||
"@types/node": "^17.0.21",
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.7.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/rich-text
|
||||
|
||||
# [1.7.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-06-29)
|
||||
|
||||
### Features
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/rich-text",
|
||||
"private": true,
|
||||
"version": "1.7.0",
|
||||
"version": "1.7.1",
|
||||
"description": "A rich text editor for Standard Notes",
|
||||
"main": "dist/dist.js",
|
||||
"author": "Standard Notes <[email protected]>",
|
||||
@@ -36,7 +36,7 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "^5.7.3",
|
||||
"webpack-merge": "^5.8.0",
|
||||
"webpack-merge-and-include-globally": "^2.3.3"
|
||||
}
|
||||
}
|
||||
|
||||
+10
@@ -3,6 +3,16 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.4.3](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-14)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **ste:** revert border radius change ([b174493](https://github.com/standardnotes/app/commit/b174493b4ea3ca164cf5754ab791022b17b612ac))
|
||||
|
||||
## [1.4.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/simple-task-editor
|
||||
|
||||
## [1.4.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ body {
|
||||
left: 0;
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
border-radius: 10px;
|
||||
border-radius: 1px;
|
||||
background-color: var(--sn-stylekit-contrast-background-color);;
|
||||
border: 1px solid var(--sn-stylekit-contrast-border-color);
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/simple-task-editor",
|
||||
"private": true,
|
||||
"version": "1.4.1",
|
||||
"version": "1.4.3",
|
||||
"main": "dist/dist.js",
|
||||
"scripts": {
|
||||
"components:compile": "webpack --config webpack.prod.js",
|
||||
@@ -43,6 +43,6 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "5.7.3"
|
||||
"webpack-merge": "^5.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.5.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/spreadsheets
|
||||
|
||||
# [1.5.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
### Features
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/spreadsheets",
|
||||
"private": true,
|
||||
"version": "1.5.0",
|
||||
"version": "1.5.1",
|
||||
"main": "dist/dist.js",
|
||||
"scripts": {
|
||||
"skip:lint": "eslint app/ --ext .js",
|
||||
@@ -39,6 +39,6 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "*"
|
||||
"webpack-merge": "^5.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.2.3](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/authenticator
|
||||
|
||||
## [2.2.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/authenticator
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/authenticator",
|
||||
"version": "2.2.2",
|
||||
"version": "2.2.3",
|
||||
"main": "dist/dist.js",
|
||||
"author": "Standard Notes",
|
||||
"private": true,
|
||||
@@ -58,6 +58,6 @@
|
||||
"webpack": "*",
|
||||
"webpack-cli": "*",
|
||||
"webpack-dev-server": "*",
|
||||
"webpack-merge": "*"
|
||||
"webpack-merge": "^5.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.1.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-11)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* focus mode & dynamic panels on small screens ([#1246](https://github.com/standardnotes/app/issues/1246)) ([9d230d4](https://github.com/standardnotes/app/commit/9d230d4b81c92b826ef9e8b89cd7192f5b4c8b13))
|
||||
|
||||
# [1.1.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/dynamic-theme",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"main": "dist/dist.css",
|
||||
"private": true,
|
||||
"sn": {
|
||||
|
||||
+21
-19
@@ -1,23 +1,25 @@
|
||||
#navigation {
|
||||
flex: none !important;
|
||||
width: 10px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
@media screen and (min-width: 768px) {
|
||||
#navigation {
|
||||
flex: none !important;
|
||||
width: 10px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#navigation:hover {
|
||||
flex: initial;
|
||||
width: 200px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
#navigation:hover {
|
||||
flex: initial;
|
||||
width: 200px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#items-column {
|
||||
flex: none !important;
|
||||
width: 270px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
#items-column {
|
||||
flex: none !important;
|
||||
width: 270px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
|
||||
#items-column:hover {
|
||||
flex: initial;
|
||||
width: 380px !important;
|
||||
transition: width 0.25s;
|
||||
#items-column:hover {
|
||||
flex: initial;
|
||||
width: 380px !important;
|
||||
transition: width 0.25s;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,118 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.23.94](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-16)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.93](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-15)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.92](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-11)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.91](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-10)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.90](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-09)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.89](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.88](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.87](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.86](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-05)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.85](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-03)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.84](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-03)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.83](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-01)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* popover header getting hidden on desktop by titlebar ([#1359](https://github.com/standardnotes/app/issues/1359)) ([5b3cfdd](https://github.com/standardnotes/app/commit/5b3cfddc50aabb4d03761e7e46c3ab1d1bb2c952))
|
||||
|
||||
## [3.23.82](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-27)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.81](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.80](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.79](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-20)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.78](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.77](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-14)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.76](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-14)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.75](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-14)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.74](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.73](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.72](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-12)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.71](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-11)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.70](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-09)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.69](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-08)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **desktop:** don't shift sections on macOS if window is small ([#1235](https://github.com/standardnotes/app/issues/1235)) ([c6932ba](https://github.com/standardnotes/app/commit/c6932ba733e0a67220ce56bec72431240518f7d8))
|
||||
|
||||
## [3.23.68](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.23.67](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
@@ -122,6 +122,10 @@ async function configureWindow(remoteBridge: CrossProcessBridge) {
|
||||
/* Use custom title bar. Take the sn-titlebar-height off of
|
||||
the app content height so its not overflowing */
|
||||
sheet.insertRule('body { padding-top: var(--sn-desktop-titlebar-height); }', sheet.cssRules.length)
|
||||
sheet.insertRule(
|
||||
'[data-popover] { padding-top: calc(var(--sn-desktop-titlebar-height) + 0.5rem); }',
|
||||
sheet.cssRules.length,
|
||||
)
|
||||
sheet.insertRule(
|
||||
`.main-ui-view { height: calc(100vh - var(--sn-desktop-titlebar-height)) !important;
|
||||
min-height: calc(100vh - var(--sn-desktop-titlebar-height)) !important; }`,
|
||||
|
||||
@@ -9,12 +9,14 @@
|
||||
transition: 0.15s padding ease;
|
||||
}
|
||||
|
||||
.mac-desktop #app.collapsed-notes.collapsed-navigation #editor-column {
|
||||
padding-top: 18px;
|
||||
}
|
||||
@media screen and (min-width: 768px) {
|
||||
.mac-desktop #app.collapsed-notes.collapsed-navigation #editor-column {
|
||||
padding-top: 18px;
|
||||
}
|
||||
|
||||
.mac-desktop #app.collapsed-navigation #items-column {
|
||||
padding-top: 18px;
|
||||
.mac-desktop #app.collapsed-navigation #items-column {
|
||||
padding-top: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
panel-resizer {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/desktop",
|
||||
"main": "./app/dist/index.js",
|
||||
"version": "3.23.67",
|
||||
"version": "3.23.94",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
@@ -79,7 +79,7 @@
|
||||
"ts-node": "^10.7.0",
|
||||
"typescript": "*",
|
||||
"webpack": "*",
|
||||
"webpack-merge": "*"
|
||||
"webpack-merge": "^5.8.0"
|
||||
},
|
||||
"build": {
|
||||
"electronVersion": "17.4.2",
|
||||
|
||||
@@ -3,6 +3,24 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [0.2.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-17)
|
||||
|
||||
### Features
|
||||
|
||||
* **docs:** remove matomo in favour of plausible ([6d7bcd7](https://github.com/standardnotes/app/commit/6d7bcd7a8d2dfffb6dc69899406af57e41c071df))
|
||||
|
||||
# [0.1.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-11)
|
||||
|
||||
### Features
|
||||
|
||||
* **docs:** improve docker page ([#1240](https://github.com/standardnotes/app/issues/1240)) ([b025e39](https://github.com/standardnotes/app/commit/b025e394c129a53f41cb5835943901cf40fc92b6))
|
||||
|
||||
## [0.0.3](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **docs:** improve getting started self host page ([#1238](https://github.com/standardnotes/app/issues/1238)) ([4ad21c4](https://github.com/standardnotes/app/commit/4ad21c4f61e26dfe3284c5def1baebb7a497d200))
|
||||
|
||||
## [0.0.2](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-05)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/docs
|
||||
|
||||
@@ -44,7 +44,6 @@ docs
|
||||
│ ├── katex
|
||||
│ ├── .nojekyll
|
||||
│ ├── CNAME
|
||||
│ └── matomo.js
|
||||
├── .gitignore
|
||||
├── .prettierrc
|
||||
├── docusaurus.config.js
|
||||
|
||||
@@ -17,113 +17,223 @@ hide_title: false
|
||||
hide_table_of_contents: false
|
||||
---
|
||||
|
||||
## Requirements
|
||||
This guide walks you through the process of installing the self-hosted backend of Standard Notes. In this example, we used a server running Ubuntu 20.04, with 2GB RAM and 1 CPU.
|
||||
|
||||
These instructions make the following assumptions:
|
||||
Due to mounted volumes, we recommend running the setup as a root user. If you wish to run it as a non-root user, please see Docker's [post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall#manage-docker-as-a-non-root-user).
|
||||
|
||||
- The machine you will be running the infrastructure on has at least 2GB of memory.
|
||||
- You've just finished setting up a Linux server (say, Ubuntu 20.04 64-bit) and have installed [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) on it.
|
||||
- Due to mounted volumes we recommend running the setup as a root user. If you wish to run it as non-root user please remember about the [post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall#manage-docker-as-a-non-root-user).
|
||||
- You've configured your security groups to allow for incoming SSH connections from your local IP.
|
||||
- You've configured your security groups to allow for incoming TCP connections on port 80 and 443 from at least your local IP.
|
||||
- You've configured a domain name (or subdomain) to point to your server's IP address.
|
||||
## Prerequisities
|
||||
|
||||
## Getting started
|
||||
1. Update your `apt` repositories and upgrade any out-of-date packages:
|
||||
|
||||
> **Note** If you are a user with an already existing legacy database of the Syncing Server, we've prepared a [Migrating from Legacy guide](./legacy-migration.md).
|
||||
```shell
|
||||
sudo apt update -y && sudo apt upgrade -y
|
||||
```
|
||||
|
||||
SSH into your server and follow the steps below:
|
||||
2. Install Docker Engine:
|
||||
|
||||
1. Make sure you are in your home directory and clone the [Standard Notes Standalone Infrastructure](https://github.com/standardnotes/standalone) project:
|
||||
```shell
|
||||
# Remove any old Docker installations.
|
||||
sudo apt-get remove docker docker-engine docker.io containerd runc
|
||||
|
||||
```bash
|
||||
$ cd ~
|
||||
$ git clone --single-branch --branch main https://github.com/standardnotes/standalone.git
|
||||
$ cd standalone
|
||||
```
|
||||
# Install dependencies.
|
||||
sudo apt install git ca-certificates curl gnupg lsb-release -y
|
||||
|
||||
1. Initialize default configuration files by typing:
|
||||
# Add Docker's GPG key.
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
|
||||
```bash
|
||||
$ ./server.sh setup
|
||||
```
|
||||
# Set the Docker repo.
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
1. Customize your configuration
|
||||
# Install Docker Engine.
|
||||
sudo apt update -y
|
||||
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
|
||||
```
|
||||
|
||||
There are 5 environment variables that need to be filled in with generated secret keys:
|
||||
3. Verify that Docker is installed:
|
||||
|
||||
- `AUTH_JWT_SECRET` in the `.env` file
|
||||
- `JWT_SECRET`, `LEGACY_JWT_SECRET`, `PSEUDO_KEY_PARAMS_KEY`, and `ENCRYPTION_SERVER_KEY` in the `docker/auth.env` file
|
||||
```shell
|
||||
sudo docker run hello-world
|
||||
```
|
||||
|
||||
You can generate values for them by using:
|
||||
This should output something like:
|
||||
|
||||
```bash
|
||||
$ openssl rand -hex 32
|
||||
```
|
||||
```plaintext
|
||||
...
|
||||
|
||||
> **Note** The server must be restarted any time environment variables are changed.
|
||||
Unable to find image 'hello-world:latest' locally
|
||||
latest: Pulling from library/hello-world
|
||||
2db29710123e: Pull complete
|
||||
Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651
|
||||
Status: Downloaded newer image for hello-world:latest
|
||||
|
||||
1. (Optional) Customize the port
|
||||
Hello from Docker!
|
||||
This message shows that your installation appears to be working correctly.
|
||||
|
||||
By default the syncing server will run on port 3000. If you have a different service running on that port, you can customize the port on which you want to run the infrastructure on. To do so, edit the `EXPOSED_PORT` variable in the `.env` file.
|
||||
...
|
||||
```
|
||||
|
||||
2. Simply run:
|
||||
4. Verify that Docker Compose is correctly installed:
|
||||
|
||||
```bash
|
||||
$ ./server.sh start
|
||||
```
|
||||
```shell
|
||||
docker compose version
|
||||
```
|
||||
|
||||
This should load all the microservices that the infrastructure consists of.
|
||||
This should output something like:
|
||||
|
||||
> **Note** The first run might take a few minutes as there are Docker images that need be pulled and built as well as migrations to be run for initializing the database.
|
||||
```plaintext
|
||||
Docker Compose version v2.6.0
|
||||
```
|
||||
|
||||
3. Wait for the infrastructure to bootstrap
|
||||
5. Enable the `ufw` firewall:
|
||||
|
||||
It takes a moment for the infrastructure to bootstrap and all the microservices to start. You can observe the process by typing:
|
||||
```shell
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
```bash
|
||||
$ ./server.sh logs
|
||||
```
|
||||
Enter `y` when prompted.
|
||||
|
||||
> **Note** You can safely escape from logs with CTRL+C
|
||||
6. Enable SSH connections:
|
||||
|
||||
> **Note** Microservices depend on each other and start sequentially in our setup. In the logs you will likely observe that one service is waiting for another to start with lines like: "XYZ is unavailable yet - waiting for it to start" where XYZ is the dependent service name. This is expected.
|
||||
```shell
|
||||
sudo ufw allow ssh
|
||||
```
|
||||
|
||||
Everything should be up and running once you observe that the `API Gateway` service has started by seeing the following line as one of the last ones in logs:
|
||||
This should output something like:
|
||||
|
||||
```
|
||||
api-gateway_1 | {"message":"Server started on port 3000","level":"info"}
|
||||
```
|
||||
```plaintext
|
||||
Skipping adding existing rule
|
||||
Skipping adding existing rule (v6)
|
||||
```
|
||||
|
||||
You can also check the state of all services via:
|
||||
7. Allow incoming TPC connections on ports `80` and `443`:
|
||||
|
||||
```bash
|
||||
$ ./server.sh status
|
||||
```
|
||||
```shell
|
||||
sudo ufw allow http
|
||||
sudo ufw allow https
|
||||
```
|
||||
|
||||
All services should be in `Up` state at this stage.
|
||||
8. Check the status of your `ufw` settings:
|
||||
|
||||
4. Test your access to the server locally:
|
||||
```shell
|
||||
ufw status verbose
|
||||
```
|
||||
|
||||
You should be able now to check that the syncing server is running by checking `http://localhost:3000/healthcheck`:
|
||||
This should output something like:
|
||||
|
||||
```bash
|
||||
$ curl http://localhost:3000/healthcheck
|
||||
OK
|
||||
```
|
||||
```plaintext
|
||||
Status: active
|
||||
Logging: on (low)
|
||||
Default: deny (incoming), allow (outgoing), deny (routed)
|
||||
New profiles: skip
|
||||
|
||||
> **Note** If you changed the `EXPOSED_PORT` variable you will have to check `http://localhost:{EXPOSED_PORT}/healthcheck`.
|
||||
To Action From
|
||||
-- ------ ----
|
||||
22/tcp ALLOW IN Anywhere
|
||||
80/tcp ALLOW IN Anywhere
|
||||
443/tcp ALLOW IN Anywhere
|
||||
22/tcp (v6) ALLOW IN Anywhere (v6)
|
||||
80/tcp (v6) ALLOW IN Anywhere (v6)
|
||||
443/tcp (v6) ALLOW IN Anywhere (v6)
|
||||
```
|
||||
|
||||
5. You're done!
|
||||
9. Configure a domain name (or subdomain) to point to your server's IP address. Consult your domain registration provider for how to configure your domain name.
|
||||
|
||||
## Securing Your Server
|
||||
## Install Standard Notes
|
||||
|
||||
In order to start using your new server with the Standard Notes app at https://app.standardnotes.com you will have to configure an HTTPS reverse proxy.
|
||||
1. Clone the `standalone` repo:
|
||||
|
||||
Unless you already have an HTTP/HTTPS server running that will serve as a reverse proxy to the standalone infrastructure, head over to [Securing HTTP traffic of your Sync server](./https-support.md).
|
||||
```shell
|
||||
cd ~
|
||||
git clone --single-branch --branch main https://github.com/standardnotes/standalone.git
|
||||
cd standalone
|
||||
```
|
||||
|
||||
1. Initialize default configuration files:
|
||||
|
||||
```shell
|
||||
./server.sh setup
|
||||
```
|
||||
|
||||
This will output something like:
|
||||
|
||||
```plaintext
|
||||
Initializing default configuration
|
||||
Default configuration files created as .env and docker/*.env files. Feel free to modify values if needed.
|
||||
```
|
||||
|
||||
1. Generate random values for the necessary environment variables:
|
||||
|
||||
```shell
|
||||
sed -i "s/auth_jwt_secret/$(openssl rand -hex 32)/g" .env
|
||||
sed -i "s/secret/$(openssl rand -hex 32)/g" docker/auth.env
|
||||
sed -i "s/legacy_jwt_secret/$(openssl rand -hex 32)/g" docker/auth.env
|
||||
sed -i "s/secret_key/$(openssl rand -hex 32)/g" docker/auth.env
|
||||
sed -i "s/server_key/$(openssl rand -hex 32)/g" docker/auth.env
|
||||
```
|
||||
|
||||
**Note:** If you are running `sed` on macOS or BSD, change instances of `sed -i` to `sed -i ''`.
|
||||
|
||||
1. (Optional) Restart the server:
|
||||
|
||||
```shell
|
||||
reboot
|
||||
```
|
||||
|
||||
1. (Optional) By default, the syncing server will run on port `3000`. If you have a different service running on that port, you can customize the port on which you want to run the infrastructure by editing the `EXPOSED_PORT` variable in the `.env` file.
|
||||
1. Once the server has finished rebooting, log back into the server and start the Standard Notes server process:
|
||||
|
||||
```shell
|
||||
cd standalone
|
||||
./server.sh start
|
||||
```
|
||||
|
||||
Docker will start outputting lots of information about the containers it is pulling in and installing. This process took about 8 minutes on a Ubuntu 20.04 server with 2GB RAM and 1 CPU.
|
||||
|
||||
1. Once Docker has finished installing, the Standard Notes install script will output:
|
||||
|
||||
```plaintext
|
||||
Infrastructure started. Give it a moment to warm up. If you wish, please run the './server.sh logs' command to see details.
|
||||
```
|
||||
|
||||
1. Check the status of your server:
|
||||
|
||||
```shell
|
||||
./server.sh status
|
||||
```
|
||||
|
||||
This will output something like:
|
||||
|
||||
```plaintext
|
||||
Services State:
|
||||
NAME COMMAND SERVICE STATUS PORTS
|
||||
api-gateway-standalone "./wait-for.sh auth …" api-gateway running 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
|
||||
auth-standalone "./wait-for.sh db 33…" auth running
|
||||
auth-worker-standalone "./wait-for.sh db 33…" auth-worker running
|
||||
cache-standalone "docker-entrypoint.s…" cache running 6379/tcp
|
||||
db-standalone "docker-entrypoint.s…" db running 3306/tcp
|
||||
files-standalone "./wait-for.sh db 33…" files running 0.0.0.0:3125->3000/tcp, :::3125->3000/tcp
|
||||
syncing-server-js-standalone "./wait-for.sh db 33…" syncing-server-js running
|
||||
syncing-server-js-worker-standalone "./wait-for.sh db 33…" syncing-server-js-worker running
|
||||
```
|
||||
|
||||
Your Standard Notes server is ready once all the services have a `STATUS` of `Up`. This process took about 11 minutes on a Ubuntu 20.04 server with 2GB RAM and 1 CPU.
|
||||
|
||||
1. You should be able now to check that the syncing server is running by checking `http://localhost:3000/healthcheck`. You must do this on the server:
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000/healthcheck
|
||||
OK
|
||||
```
|
||||
|
||||
If you changed the `EXPOSED_PORT` variable, check `http://localhost:{EXPOSED_PORT}/healthcheck`.
|
||||
|
||||
1. You're done!
|
||||
|
||||
## Securing your server
|
||||
|
||||
To start using your new server with the Standard Notes app at `app.standardnotes.com,` you have to configure an HTTPS reverse proxy. Head over to [Securing HTTP traffic of your Sync server](./https-support.md) for more information on how to set up a reverse proxy.
|
||||
|
||||
## Using your new server
|
||||
|
||||
In the account menu, choose `Advanced options` and enter the address of your new server in `Custom sync server`.
|
||||
|
||||
Then, register for a new account or log into an existing account and begin using your private new secure Standard Notes server!
|
||||
In the account menu, choose `Advanced options` and enter the address of your new server in `Custom sync server`. Then, register for a new account or log in to an existing account and begin using your private new secure Standard Notes server!
|
||||
|
||||
@@ -16,28 +16,57 @@ hide_title: false
|
||||
hide_table_of_contents: false
|
||||
---
|
||||
|
||||
Our self-hosted server infrastructure consists of several different microservices that are responsible for different sets of functionality. Our self-hosted server is only intended as the backend that processes and stores your data; it does not include self-hosting the web application, which is an optional process that must be done separately. You will be able to use our existing [web](https://app.standardnotes.com) and desktop app with your self-hosted server.
|
||||
Our self-hosted server infrastructure consists of different microservices responsible for varying functionality. The self-hosted server works as the _backend_ that processes and stores your data; it does not include the web application.
|
||||
|
||||
## Get Started
|
||||
The web application is an optional process that you must spin up separately. However, you can use the [existing web app](https://app.standardnotes.com) or the official Standard Notes desktop app with your self-hosted server.
|
||||
|
||||
👉 **[Using our automated docker-compose setup with accompanying scripts](./docker.md)** 👈
|
||||
:::tip Quick start
|
||||
|
||||
If you'd like to learn more about each of the particular services, head over to [Infrastructure Overview](./infrastructure-overview.md).
|
||||
The fastest and easiest way to get up and running is to use our automated Docker setup. All you need is a Linux server and the latest version of [Docker](https://docs.docker.com/get-started).
|
||||
|
||||
> **Note** Our setup also provides a running MySQL database and a Redis cache node. You do not have to provision these services on your own. For users that have been self-hosting a legacy version of our server, we've prepared a [Migrating from Legacy guide](./legacy-migration.md).
|
||||
[Check out our Docker instructions page to get started →](./docker.md)
|
||||
|
||||
### Recommendations
|
||||
:::
|
||||
|
||||
We highly recommend you use our Docker setup to host your syncing server. Docker containers are isolated software environments that you can control and manage.
|
||||
## Infrastructure overview
|
||||
|
||||
If you are new to Docker, please see the [official Docker documentation](https://docs.docker.com/get-started) on how to get started. Ensure you [install Docker-Compose](https://docs.docker.com/compose/install/) following the documentation. Your Linux distribution may not have the most up to date docker-compose and will fail to load.
|
||||
### API Gateway
|
||||
|
||||
We recommend avoiding setting up your syncing server from scratch with Nginx unless you are proficient with Nginx. Setting up the full architecture can be challenging without full knowledge of how the syncing server and its microservices function.
|
||||
The main entry point of the architecture. The API Gateway is a router and proxy for all services which are otherwise inaccessible directly. All requests from client applications go through the API Gateway to reach a target underlying service. This service is configured with your reverse proxy for public HTTPS support.
|
||||
|
||||
### Issues
|
||||
### Syncing Server
|
||||
|
||||
If you have any issues with setting up your syncing server, please [open an issue on GitHub](https://github.com/standardnotes/standalone/issues).
|
||||
Responsible for user data and syncing operations.
|
||||
|
||||
### Syncing Server Worker
|
||||
|
||||
Responsible for asynchronous tasks the Syncing Server may offload for background processing, including email backups, revision history, and more.
|
||||
|
||||
### Auth
|
||||
|
||||
Responsible for authorization and authentication mechanisms within Standard Notes.
|
||||
|
||||
### Auth Worker
|
||||
|
||||
Responsible for asynchronous tasks related to the domain of authentication and authorization, including account deletion requests and post-registration tasks.
|
||||
|
||||
### Database
|
||||
|
||||
The database is where data is stored.
|
||||
|
||||
### Cache
|
||||
|
||||
A Redis cache node is used to store temporary data for performance optimization and auto-expiring features. In self-hosted mode, Redis is used as a communication queue between services and workers.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If you run into any issues setting up your server, please [open an issue on GitHub](https://github.com/standardnotes/standalone/issues) or reach out on the [Standard Notes Discord](https://standardnotes.com/discord).
|
||||
|
||||
## Web application
|
||||
|
||||
If you would like to self-host the actual Standard Notes web application, visit the [repository for the web app on GitHub](https://github.com/standardnotes/web).
|
||||
If you would like to self-host the actual Standard Notes web application, visit the [repository for the Standard Notes web app on GitHub](https://github.com/standardnotes/app/tree/main/packages/web).
|
||||
|
||||
## Self-hosting without Docker?
|
||||
|
||||
Configuring the full Standard Notes architecture manually can be challenging without detailed study. We do not offer support for this method of self-hosting. [The only supported self-hosting method is to use Docker →](./docker.md)
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
slug: infrastructure-overview
|
||||
id: infrastructure-overview
|
||||
title: Infrastructure Overview
|
||||
sidebar_label: Infrastructure Overview
|
||||
description: Standard Notes Infrastructure Overview.
|
||||
keywords:
|
||||
- standard notes
|
||||
- docs
|
||||
- notes app
|
||||
- end-to-end encryption
|
||||
- self-hosting
|
||||
- sync server
|
||||
image: /img/logo.png
|
||||
hide_title: false
|
||||
hide_table_of_contents: false
|
||||
---
|
||||
|
||||
## Services
|
||||
|
||||
The Syncing Server infrastructure consists of a few different microservices that are responsible for different sets of functionality.
|
||||
|
||||
### Syncing Server JS
|
||||
|
||||
Syncing Server JS is a TypeScript implementation of our Syncing Server. This is the core of our business logic that is responsible for all operations on user data.
|
||||
|
||||
### Syncing Server JS Worker
|
||||
|
||||
Syncing Server JS Worker is responsible for all asynchronous tasks that the Syncing Server JS may offload for background processing. This includes for example processing of email backups, resolving issues with note duplicates, sending notes to extensions server, and more.
|
||||
|
||||
### Auth
|
||||
|
||||
This server is responsible for all authorization and authentication mechanisms. Auth is where all account-related metadata is handled and processed.
|
||||
|
||||
### Auth Worker
|
||||
|
||||
Similar to Syncing Server JS Worker, Auth Worker is responsible for all asynchronous tasks related to the domain of authentication and authorization. For example, processing account deletion requests and users' post-registration tasks.
|
||||
|
||||
### API Gateway
|
||||
|
||||
This is the main "entry point" of the entire architecture. API Gateway serves as a router and proxy to all services which are inaccessible directly. All requests from client applications will have to go through API Gateway in order to reach a certain underlying service.
|
||||
|
||||
This service will be paired with your reverse proxy for [HTTPS support](./https-support.md)
|
||||
|
||||
### DB
|
||||
|
||||
MySQL database server. This is where all data is stored.
|
||||
|
||||
### Cache
|
||||
|
||||
Redis cache node where all temporary data is persisted for performance optimization and auto-expiring features.
|
||||
|
||||
In self-host mode, Redis is used by default as a communication queue between services and their workers.
|
||||
@@ -156,8 +156,8 @@ module.exports = {
|
||||
],
|
||||
scripts: [
|
||||
{
|
||||
src: `/matomo.js`,
|
||||
async: true,
|
||||
src: 'https://plausible.standardnotes.com/js/plausible.js',
|
||||
"data-domain": 'docs.standardnotes.com',
|
||||
defer: true,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/docs",
|
||||
"version": "0.0.2",
|
||||
"version": "0.2.0",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
|
||||
@@ -4,7 +4,6 @@ module.exports = {
|
||||
{
|
||||
'Self Hosting': [
|
||||
'self-hosting/getting-started',
|
||||
'self-hosting/infrastructure-overview',
|
||||
'self-hosting/docker',
|
||||
'self-hosting/configuration-options',
|
||||
'self-hosting/legacy-migration',
|
||||
|
||||
Vendored
-11
@@ -1,11 +0,0 @@
|
||||
var _paq = window._paq || [];
|
||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="//matomo.standardnotes.org/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '7']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
@@ -3,6 +3,24 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [1.14.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-08-05)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **encryption:** remove compiled encrypted paramters from source ([73e3b38](https://github.com/standardnotes/app/commit/73e3b3813f21f3fe06e5af2cfa2953210bb1de76))
|
||||
|
||||
### Features
|
||||
|
||||
* **encryption:** refactor circular dependencies on services ([ffb2193](https://github.com/standardnotes/app/commit/ffb21939246eb81eba3230ff8c0d68e7a6cb2bcb))
|
||||
* **web:** extract ui-services package ([7e25126](https://github.com/standardnotes/app/commit/7e251262d770cfc9d791115b9c18b862c49e4e03))
|
||||
|
||||
## [1.13.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* upgrade jest with types to latest version ([09e08ca](https://github.com/standardnotes/app/commit/09e08ca899ba8694cf43292e918c4c204c0d2cb9))
|
||||
* upgrade ts-jest in packages ([71e792d](https://github.com/standardnotes/app/commit/71e792da354ff90335b92758e196075a0f88d060))
|
||||
|
||||
## [1.13.4](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2022-07-08)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/encryption
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/encryption",
|
||||
"version": "1.13.4",
|
||||
"version": "1.14.0",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
@@ -25,21 +25,20 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@standardnotes/config": "2.4.3",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/jest": "^28.1.5",
|
||||
"@types/node": "^18.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "*",
|
||||
"eslint": "*",
|
||||
"eslint-plugin-prettier": "*",
|
||||
"jest": "^27.5.1",
|
||||
"jest": "^28.1.2",
|
||||
"prettier": "*",
|
||||
"ts-jest": "^27.1.3",
|
||||
"ts-jest": "^28.0.5",
|
||||
"typescript": "*"
|
||||
},
|
||||
"dependencies": {
|
||||
"@standardnotes/common": "^1.23.1",
|
||||
"@standardnotes/models": "workspace:*",
|
||||
"@standardnotes/responses": "workspace:*",
|
||||
"@standardnotes/services": "workspace:*",
|
||||
"@standardnotes/sncrypto-common": "workspace:*",
|
||||
"@standardnotes/utils": "workspace:*",
|
||||
"reflect-metadata": "^0.1.13"
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
import { AnyKeyParamsContent, ProtocolVersion } from '@standardnotes/common'
|
||||
import { BackupFileDecryptedContextualPayload, BackupFileEncryptedContextualPayload } from '@standardnotes/models'
|
||||
|
||||
export type BackupFile = {
|
||||
version?: ProtocolVersion
|
||||
keyParams?: AnyKeyParamsContent
|
||||
auth_params?: AnyKeyParamsContent
|
||||
items: (BackupFileDecryptedContextualPayload | BackupFileEncryptedContextualPayload)[]
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
import * as Models from '@standardnotes/models'
|
||||
import {
|
||||
DecryptedPayloadInterface,
|
||||
ItemsKeyInterface,
|
||||
RootKeyInterface,
|
||||
ItemContent,
|
||||
EncryptedPayloadInterface,
|
||||
} from '@standardnotes/models'
|
||||
import {
|
||||
DecryptedParameters,
|
||||
EncryptedParameters,
|
||||
@@ -9,8 +15,8 @@ import { isAsyncOperator } from './Functions'
|
||||
import { OperatorManager } from './OperatorManager'
|
||||
|
||||
export async function encryptPayload(
|
||||
payload: Models.DecryptedPayloadInterface,
|
||||
key: Models.ItemsKeyInterface | Models.RootKeyInterface,
|
||||
payload: DecryptedPayloadInterface,
|
||||
key: ItemsKeyInterface | RootKeyInterface,
|
||||
operatorManager: OperatorManager,
|
||||
): Promise<EncryptedParameters> {
|
||||
const operator = operatorManager.operatorForVersion(key.keyVersion)
|
||||
@@ -29,9 +35,9 @@ export async function encryptPayload(
|
||||
return encryptionParameters
|
||||
}
|
||||
|
||||
export async function decryptPayload<C extends Models.ItemContent = Models.ItemContent>(
|
||||
payload: Models.EncryptedPayloadInterface,
|
||||
key: Models.ItemsKeyInterface | Models.RootKeyInterface,
|
||||
export async function decryptPayload<C extends ItemContent = ItemContent>(
|
||||
payload: EncryptedPayloadInterface,
|
||||
key: ItemsKeyInterface | RootKeyInterface,
|
||||
operatorManager: OperatorManager,
|
||||
): Promise<DecryptedParameters<C> | ErrorDecryptingParameters> {
|
||||
const operator = operatorManager.operatorForVersion(payload.version)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import {
|
||||
BackupFile,
|
||||
DecryptedPayloadInterface,
|
||||
EncryptedPayloadInterface,
|
||||
ItemContent,
|
||||
RootKeyInterface,
|
||||
} from '@standardnotes/models'
|
||||
import { ClientDisplayableError } from '@standardnotes/responses'
|
||||
import { BackupFile } from '../../Backups/BackupFile'
|
||||
import { SNRootKeyParams } from '../../Keys/RootKey/RootKeyParams'
|
||||
import { KeyedDecryptionSplit } from '../../Split/KeyedDecryptionSplit'
|
||||
import { KeyedEncryptionSplit } from '../../Split/KeyedEncryptionSplit'
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export enum RootKeyServiceEvent {
|
||||
RootKeyStatusChanged = 'RootKeyStatusChanged',
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
export * from './Algorithm'
|
||||
export * from './Backups/BackupFile'
|
||||
export * from './Backups/BackupFileDecryptor'
|
||||
export * from './Backups/BackupFileType'
|
||||
export * from './Keys/ItemsKey/ItemsKey'
|
||||
export * from './Keys/ItemsKey/ItemsKeyMutator'
|
||||
@@ -11,7 +9,6 @@ export * from './Keys/RootKey/ProtocolVersionForKeyParams'
|
||||
export * from './Keys/RootKey/RootKey'
|
||||
export * from './Keys/RootKey/RootKeyParams'
|
||||
export * from './Keys/RootKey/ValidKeyParamsKeys'
|
||||
export * from './Keys/Utils/DecryptItemsKey'
|
||||
export * from './Keys/Utils/KeyRecoveryStrings'
|
||||
export * from './Operator/001/Operator001'
|
||||
export * from './Operator/002/Operator002'
|
||||
@@ -22,11 +19,9 @@ export * from './Operator/Operator'
|
||||
export * from './Operator/OperatorManager'
|
||||
export * from './Operator/OperatorWrapper'
|
||||
export * from './Service/Encryption/EncryptionProvider'
|
||||
export * from './Service/Encryption/EncryptionService'
|
||||
export * from './Service/Functions'
|
||||
export * from './Service/Items/ItemsEncryption'
|
||||
export * from './Service/RootKey/KeyMode'
|
||||
export * from './Service/RootKey/RootKeyEncryption'
|
||||
export * from './Service/RootKey/RootKeyServiceEvent'
|
||||
export * from './Split/AbstractKeySplit'
|
||||
export * from './Split/EncryptionSplit'
|
||||
export * from './Split/EncryptionTypeSplit'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user