import{_ as e,o as a,c as t,R as s}from"./chunks/framework.1625126e.js";const g=JSON.parse('{"title":"Nezha server over Argo tunnel","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/case/case5.md","filePath":"en_US/case/case5.md","lastUpdated":1693584937000}'),n={name:"en_US/case/case5.md"},l=s(`
Contributors:
GitHub project: Argo-Nezha-Service-Container
Mirror backup (not live update): Argo-Nezha-Service-Container
DNS
record of the corresponding domain, and turn on Orange Cloud to enable CDN.network
option to turn the gRPC
switch on.Add https://
to the beginning of the panel's domain name and /oauth2/callback
to the end of the callback address.
Image fscarmen/argo-nezha:latest
, supports amd64 and arm64 architectures.
Variables used
Variable Name | Required | Remarks |
---|---|---|
GH_USER | Yes | github username for panel admin authorization |
GH_CLIENTID | yes | apply on github |
GH_CLIENTSECRET | yes | apply on github |
GH_BACKUP_USER | No | The github username for backing up Nezha's server-side database on github, if not filled in, it is the same as the account GH_USER for panel management authorization |
GH_REPO | No | The github repository for backing up Nezha's server-side database files on github |
GH_EMAIL | No | github's mailbox for git push backups to remote repositories |
GH_PAT | No | github's PAT |
ARGO_JSON | Yes | Argo Json from https://fscarmen.cloudflare.now.cc |
DATA_DOMAIN | Yes | Client-server communication argo domain name |
WEB_DOMAIN | Yes | Panel argo domain |
SSH_DOMAIN | No | ssh for argo domain |
SSH_PASSWORD | no | password for ssh, only works after setting SSH_JSON, default password |
Koyeb
docker run -dit \\
--name nezha_dashboard \\
--restart always \\
-e GH_USER=<fill in github username> \\
-e GH_EMAIL=<fill in github email> \\
-e GH_PAT=<fill in the obtained> \\
-e GH_REPO=<fill in customized> \\
-e GH_CLIENTID=<fill in acquired> \\
-e GH_CLIENTSECRET=<fill in acquired> \\
-e ARGO_JSON='<fill in acquired>' \\
-e WEB_DOMAIN=<fill in customized> \\
-e DATA_DOMAIN=<fill in customized> \\
-e SSH_DOMAIN=<fill in customized> \\
-e SSH_PASSWORD=<insert customized> \\
fscarmen/argo-nezha
version: '3.8'
services.
argo-nezha.
image: fscarmen/argo-nezha
container_name: nezha_dashboard
restart: always
environment:
- GH_USER=<fill in github username>
- GH_EMAIL=<fill in your github email>
- GH_PAT=<<fill in obtained>
- GH_REPO=<fill in customized>
- GH_CLIENTID=<fill in obtained>
- GH_CLIENTSECRET=<fill in fetched>
- ARGO_JSON='<fill in acquired>'
- WEB_DOMAIN=<fill customized>
- DATA_DOMAIN=<fill in customized>
- SSH_DOMAIN=<insert customized>
- SSH_PASSWORD=<fill customized>
Transfer via gRPC, no additional configuration required. Use the installation method given in the panel, for example
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent data.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls
<filepath>/cloudflared access ssh --hostname ssh.seals.nom.za
README.md
in the github backup repository, the timer service will check for updates every minute and record the last synchronized filename in the local /dbfile
to compare with the online file content.The following is an example of restoring a file with the name dashboard-2023-04-23-13:08:37.tar.gz
.
! image
bash /dashboard/restore.sh <filename>
/dashboard
folder of the original Nezha and zip it up to dashboard.tar.gz
file.tar czvf dashboard.tar.gz /dashboard
dashboard.tar.gz
..
|-- dashboard
| |-- app # Nezha panel main program
| |-- argo.json # Argo tunnel json file, which records information about using the tunnel.
| |-- argo.yml # Argo tunnel yml file, used for streaming web, gRPC and ssh protocols under a single tunnel with different domains.
| |-- backup.sh # Backup data scripts
| |-- data
| | |-- config.yaml # Configuration for the Nezha panel, e.g. Github OAuth2 / gRPC domain / port / TLS enabled or not.
| | \`-- sqlite.db # SQLite database file that records all severs and cron settings for the panel.
| |-- entrypoint.sh # The main script, which is executed after the container is run.
| |-- nezha-agent # Nezha client, used to monitor the localhost.
| |-- nezha.csr # SSL/TLS certificate signing request
| |-- nezha.key # Private key information for SSL/TLS certificate.
| |-- nezha.pem # SSL/TLS Privacy Enhancement Email
| \`-- restore.sh # Restore backup scripts
\`-- dbfile # Record the name of the latest restore or backup file