Okay, so it looks like this can be installed by "reverse-engineering" the app dockerfile instructions. After some tinkering, this is how I got it working:
Create a new NGINX proxy app for your desired shell USER, we'll also call it MEMOS for the purpose of this tutorial (note assigned PORT number) and also create your new site record for the app (assign the new NGINX proxy app to route it to / ).
Install prerequisites:
Get newer Node binary
mkdir ~/bin && cd ~/bin
wget https://nodejs.org/download/release/v16.16.0/node-v16.16.0-linux-x64.tar.gz
tar zxf node-v16.16.0-linux-x64.tar.gz
Setup Yarn
mkdir -p ~/opt/yarn
cd ~/opt/yarn
wget https://yarnpkg.com/latest.tar.gz
tar zxf latest.tar.gz --strip 1
Setup updated Go
cd ~/opt
wget https://go.dev/dl/go1.20.2.linux-amd64.tar.gz
tar zxf go1.20.2.linux-amd64.tar.gz
Install musl-dev
mkdir ~/opt/musl-dev
cd ~/opt/musl-dev
wget https://musl.libc.org/releases/musl-latest.tar.gz
tar zxf musl-latest.tar.gz
cd musl-1.2.3/
./configure --prefix=$HOME/opt/musl-dev
make && make install
- Setup symlinks for new binaries:
ln -s ~/opt/go/bin/go ~/bin/go && ln -s ~/opt/yarn/bin/yarn ~/bin/yarn && ln -s ~/opt/musl-dev/bin/musl-gcc ~/bin/musl-gcc && ln -s ~/bin/node-v16.16.0-linux-x64/bin/node ~/bin/node
- EDIT
~/.bash_profile
PATH line, change to following (replace MEMOS with your Node.js app name):
PATH=$HOME/bin:$PATH:$HOME/.local/bin
- Refresh bash config and proceed to install into MEMOS:
source ~/.bash_profile
cd ~/apps/MEMOS
wget https://github.com/usememos/memos/archive/refs/tags/v0.11.2.tar.gz
tar zxf v0.11.2.tar.gz --strip-components=1
cp -R ./web/* .
yarn && yarn build
cp -R dist/* ./server/dist/
EDIT cmd/server.go
and change all instances of 8081 to the assigned app PORT, save and close.
Build new app binary:
go build -o ~/apps/MEMOS/memos ~/apps/MEMOS/main.go
- EDIT crontab via
crontab -e
and ADD the following on a new line (replace path to new memos binary file), save and close.
00,10,20,30,40,50 * * * * /home/USER/apps/MEMOS/memos > /dev/null 2>&1
- Test load the app on your assigned domain when the crontab runs it, eg https://mymemosapp.com, then immediately login with the demo account at https://mymemosapp.com/auth and change the password/user details.
And that should be it! If you have any issues feel free to comment here or open a ticket with support for further assistance.
EDIT: Added Node binary setup due to yarn requirements
EDIT2: Updated for latest Go and memos releases