Ichinoe
Seraph is a cloud server assistant aiming to make advantage of hosts' potential.
-
Install
Node.jsno earlier than v16.7.0 (on whichfs.cpSyncwas added) andnpm.jswget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash nvm install 16 nvm use 16 -
Clone this repository to your cloud server and install dependencies in
package.json# use `git clone --recurse-submodules` to fetch submodules git clone https://github.com/ShiinaHiiragi/seraph cd seraph/ npm install --production npm install --prefix server --production
remove
--productionfor development -
(IMPORTANT) Create an
.envfile underseraph/and add following configuration-
development http (
npm run dev) with react on 80 and express on 8000:cat > .env <<EOF PORT=80 REACT_APP_HOSTNAME=localhost REACT_APP_SPORT=8000 EOF
-
deployment https (
npm start) with express on 443:cat > .env <<EOF GENERATE_SOURCEMAP=false REACT_APP_HOSTNAME=${YOUR_HOSTNAME} REACT_APP_SSLCERT=local REACT_APP_SPORT=443 EOF
and certificate
${HOSTNAME}.crtand key${HOSTNAME}.keyMUST be added underseraph/server/cert -
deployment https (
npm start) with nginx proxy from 443 to express on 8000:cat > .env <<EOF GENERATE_SOURCEMAP=false REACT_APP_HOSTNAME=${YOUR_HOSTNAME} REACT_APP_SSLCERT=nginx REACT_APP_NPORT=443 REACT_APP_SPORT=8000 EOF
and configure nginx; attention, a reload is needed after updation of certificates
sudo apt install -y nginx sudo tee /etc/nginx/sites-available/default > /dev/null <<'EOF' server { listen 443 ssl; server_name ${YOUR_HOSTNAME}; ssl_certificate /etc/nginx/ssl/${YOUR_HOSTNAME}_bundle.crt; ssl_certificate_key /etc/nginx/ssl/${YOUR_HOSTNAME}.key; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1800s; proxy_send_timeout 1800s; proxy_set_header Host \$host; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto \$scheme; client_max_body_size 512M; } } EOF sudo nginx -t && sudo systemctl reload nginxConfigure auto certificate deployment
-
Install
acme.shunderrootsudo su curl https://get.acme.sh | sh -s email=${YOUR_EMAIL}
-
Issue and install certificate via dns provider api (e.g. Tencent Cloud)
sudo mkdir -p /etc/nginx/ssl Tencent_SecretId="..." Tencent_SecretKey="..." /root/.acme.sh/acme.sh --issue \ -d ${YOUR_HOSTNAME} \ --dns dns_tencent \ --server letsencrypt /root/.acme.sh/acme.sh --install-cert -d ${YOUR_HOSTNAME} \ --fullchain-file /etc/nginx/ssl/${YOUR_HOSTNAME}_bundle.crt \ --key-file /etc/nginx/ssl/${YOUR_HOSTNAME}.key \ --reloadcmd "systemctl reload nginx"
-
-
-
(OPTIONAL) If you have fetched submodules, more dependencies are needed
# if submodules have not been fetched git submodule update --init --recursive # install pandoc sudo apt install -y pandoc # install python3 sudo apt install -y python3 python3-pip # install pip packages # sudo is needed because express is executed under sudo sudo pip3 install tqdm beautifulsoup4 lxml markdown-it-py pillow numpy
-
Start the server (make sure
.envis created before executing following command)npm run build tmux new -As seraph npm start
-
Open the page and initialize configuration via setting language and password
-
npm error make: g++: No such file or directory: try runningsudo apt update sudo apt install -y build-essential
-
EACCES: permission denied, open 'node_modules/.cache/.eslintcache': try runningsudo chown -R $USER:$USER node_modules/.cache
-
Port 80 requires elevated privileges: try runningsudo setcap 'cap_net_bind_service=+ep' $(which node)
-
sudo: node: command not found: add path of node to visudo usingsudo visudo
-
Can't resolve @mui/material/utils: try runningnpm install @mui/material @emotion/react @emotion/styled
-
All data are stored in
server/data/zip -r backup.zip server/data/
- 10/07/2026 ver 1.4.18: Add thumbnails support for image preview
- 10/06/2026 ver 1.4.17: Fix logs and size limit for Express server
- 10/05/2026 ver 1.4.16: Fix popup padding for Milkdown Crepe
- 10/04/2026 ver 1.4.15: Fix .env for production and table width of Milkdown Crepe
- 10/03/2026 ver 1.4.14: Add size progress indicator for files uploading
- 10/02/2026 ver 1.4.13: Add image preview for FileTable
- 10/01/2026 ver 1.4.12: Fix copy/cut problems when renaming/delete files
- 09/30/2026 ver 1.4.11: Fix sync problem of SemiInput components
- 09/29/2026 ver 1.4.10: Fix scroll bar and auto save for Milkdown Crepe
- 07/24/2026 ver 1.4.9: Fix text overflow & unzip
- 07/14/2026 ver 1.4.8: Split language chunks as lazy loading
- 06/28/2026 ver 1.4.7: Add CSS supports for Milkdown Crepe
- 06/27/2026 ver 1.4.6: Fix cookie session and raw toast functions
- 06/26/2026 ver 1.4.5: Add feature of drag & drop and styles of sonner toast
- 06/25/2026 ver 1.4.4: Add setting for shortcuts and fix states of Crepe editor
- 06/24/2026 ver 1.4.3: Add feature of auto save for Crepe editor
- 06/23/2026 ver 1.4.2: Add link shortcut for file explorer
- 06/22/2026 ver 1.4.1: Fix file content and scrollbar during editor rebuilding
- 06/21/2026 ver 1.4.0: Add Milkdown Crepe as rich text editor
- 06/18/2026 ver 1.3.0: Update dependencies from @mui/material and introduce @mui/x-tree-view v7
- 06/18/2026 ver 1.2.2: Add salt manager for data safety
- 06/17/2026 ver 1.2.1: Add encryption/decryption for files
- 06/16/2026 ver 1.2.0: Refactor base components to data router
- 06/15/2026 ver 1.1.4: Change links properties inside web pages
- 06/13/2026 ver 1.1.3: Add import/export for config
- 06/09/2026 ver 1.1.2: Add several config options
- 06/08/2026 ver 1.1.1: Fix permission problem and input field
- 06/07/2026 ver 1.1.0: Refactor welcome page into system dashboard
- 06/05/2026 ver 1.0.1: Add loading animation and fix words wrap
- 06/04/2026 ver 1.0.0: Update dependencies from @mui/joy and split build bundles
- 06/03/2026 ver 0.4.1: Fix plaintext cipher
- 06/02/2026 ver 0.4.0: Add terminal
- 06/01/2026 ver 0.3.0: Add setting popup
- 05/29/2026 ver 0.2.4: Add multiple files uploading
- 05/27/2026 ver 0.2.3: Add converter for epub files fix i18n text
- 05/26/2026 ver 0.2.2: Add supports for dot files and fix several bugs
- 10/17/2023 ver 0.2.1: Add extractor for zip files and fix several bugs
- 10/16/2023 ver 0.2.0: Add TODO list
- 09/19/2023 ver 0.1.1: Fix several bugs
- 09/18/2023 ver 0.1.0: Complete folder page