import{_ as e,o as a,c as t,R as n}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":1696350032000}'),s={name:"en_US/case/case5.md"},o=n(`
Contributors:
GitHub project: Argo-Nezha-Service-Container
Mirror backup (not live update): Argo-Nezha-Service-Container
The Argo Tunnel authentication methods are json and token, use one of the two methods.
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_AUTH | Yes | Argo Json from https://fscarmen.cloudflare.now.cc Argo token from Cloudflare official website |
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_AUTH='<Fill in the fetched Argo json or token>' \\
-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_AUTH='<Fill in the fetched Argo json or token>'
- 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.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
|-- usr
| \`-- local
| \`-- bin
| |-- cloudflared # Cloudflare Argo tunnel main program.
| |-- grpcwebproxy # gRPC reverse proxy main program.
| \`-- nezha-agent # Nezha client, used to monitor the localhost.
|-- dbfile # Record the name of the latest restore or backup file
\`-- version # Record the current panel app version