Files
appstore/README-en.md
okxlin a70654f5c3 docs: support custom 1Panel base directory (#5248)
Allow users to set the 1Panel base directory explicitly in both READMEs and constrain cleanup to the validated import path.
2026-07-28 13:02:55 +08:00

7.7 KiB

1Panel Third-Party App Store

Docker app configurations adapted for the 1Panel app store 2.0. After import, apps can be installed from the 1Panel local app store or run directly with docker-compose from each app version directory.

Docker Apps project banner

阅读简体中文版 English (current language)

Support

Support this project on AFDIAN

WeChat Reward Code
WeChat reward code

Table of Contents

Disclaimer

1. Image Container Adaptation

This project specifically adapts to the 1Panel app store for original docker image container operations. We do not make any explicit or implicit warranties or statements regarding the validity of any original images, and we are not responsible for any effects caused by using applications from this repository. Users undertake the risks associated with using this project on their own.

2. Compliance with Laws

When using this repository, users must comply with the laws and regulations of their respective countries and regions. Certain applications may be restricted by specific national laws, and users need to understand and comply with relevant legal requirements. This repository is not responsible for any consequences arising from the user's violation of laws and regulations.

3. Acceptance of Disclaimer

By importing and using the applications in this repository, the user signifies that they have read, understood, and accepted all the terms and conditions of this disclaimer.

Please note that this disclaimer applies only to the use of this repository and does not encompass other third-party applications or services. We are not responsible for the accuracy, completeness, reliability, or legality of third-party content linked to this repository.

Before using this repository, please ensure that you have read, understood, and accepted all the terms and conditions of this disclaimer.


1. Introduction

This repository organizes app directories, metadata, form variables, and Docker Compose files according to the 1Panel v2 app specification. The goal is to make apps installable after import with less manual deployment and repeated configuration.

2. Contributing Apps

Important

Before submitting an app PR, third-party developers are encouraged to generate or validate the app package with okxlin/1panel-app-adapter. It checks the 1Panel v2 directory layout, data.yml, docker-compose.yml, environment variable closure, i18n labels, and common release issues.

When opening a PR, include reproducible upstream sources, image sources, default ports, data directories, required dependencies, and test results. Commit only the final app directory to this repository; temporary test output and process files are not needed.

Retired Apps

Apps that can no longer be installed and have no trustworthy replacement image are removed from the active catalog. Retirement reasons and last available versions are recorded in .github/retired-apps.yml, while the complete app files remain recoverable from Git history.

3. Usage

The commands below use /opt as the default 1Panel installation base directory. Before running each command block, set PANEL_BASE_DIR to match your installation.

3.1 GitHub Network Notes

GitHub proxy mirrors change often, so this README no longer maintains a fixed acceleration domain list. If your network cannot reach GitHub, use a trusted proxy, a self-hosted gh-proxy, or another acceleration method, and verify that the proxy does not modify repository content.

The examples below use official GitHub URLs. Replace them according to your proxy rules if needed.

3.2 Getting Apps via Git Command

Create a Shell Script scheduled task in 1Panel and run the following commands, or execute them directly in a terminal:

set -euo pipefail

PANEL_BASE_DIR="/opt" # Change this to your 1Panel installation base directory

case "$PANEL_BASE_DIR" in
  /*) ;;
  *)
    echo "PANEL_BASE_DIR must be an absolute path" >&2
    exit 1
    ;;
esac

PANEL_BASE_DIR="$(realpath -m -- "$PANEL_BASE_DIR")"
if [ "$PANEL_BASE_DIR" = "/" ]; then
  echo "PANEL_BASE_DIR cannot be /" >&2
  exit 1
fi

LOCAL_APPS_DIR="$PANEL_BASE_DIR/1panel/resource/apps/local"
IMPORT_DIR="$LOCAL_APPS_DIR/appstore-localApps"

if [ ! -d "$LOCAL_APPS_DIR" ]; then
  echo "Local app directory does not exist: $LOCAL_APPS_DIR" >&2
  exit 1
fi

git clone -b localApps https://github.com/okxlin/appstore "$IMPORT_DIR"

cp -a "$IMPORT_DIR/apps/." "$LOCAL_APPS_DIR/"

find "$IMPORT_DIR" -xdev -mindepth 1 -delete
rmdir "$IMPORT_DIR"

When the commands finish, refresh the local apps in the app store.

3.3 Getting Apps via Compressed Package

Create a Shell Script scheduled task in 1Panel and run the following commands, or execute them directly in a terminal:

set -euo pipefail

PANEL_BASE_DIR="/opt" # Change this to your 1Panel installation base directory

case "$PANEL_BASE_DIR" in
  /*) ;;
  *)
    echo "PANEL_BASE_DIR must be an absolute path" >&2
    exit 1
    ;;
esac

PANEL_BASE_DIR="$(realpath -m -- "$PANEL_BASE_DIR")"
if [ "$PANEL_BASE_DIR" = "/" ]; then
  echo "PANEL_BASE_DIR cannot be /" >&2
  exit 1
fi

LOCAL_APPS_DIR="$PANEL_BASE_DIR/1panel/resource/apps/local"
IMPORT_DIR="$LOCAL_APPS_DIR/appstore-localApps"
ARCHIVE_PATH="$LOCAL_APPS_DIR/localApps.zip"

if [ ! -d "$LOCAL_APPS_DIR" ]; then
  echo "Local app directory does not exist: $LOCAL_APPS_DIR" >&2
  exit 1
fi

wget -O "$ARCHIVE_PATH" https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip

unzip -o "$ARCHIVE_PATH" -d "$LOCAL_APPS_DIR"

cp -a "$IMPORT_DIR/apps/." "$LOCAL_APPS_DIR/"

find "$IMPORT_DIR" -xdev -mindepth 1 -delete
rmdir "$IMPORT_DIR"

unlink "$ARCHIVE_PATH"

When the commands finish, refresh the local apps in the app store.

4. Remarks

Note

Apps that do not appear in the local app list have not been fully adapted for panel operations, but they can usually still be run from a terminal.

For example, to run rustdesk:

PANEL_BASE_DIR="/opt" # Change this to your 1Panel installation base directory

# Enter the latest version directory of rustdesk
cd "$PANEL_BASE_DIR/1panel/resource/apps/local/rustdesk/versions/latest/" || exit 1

# Copy .env.sample as .env
cp .env.sample .env

# Edit the .env file and modify the parameters
nano .env

# Start RustDesk
docker-compose up -d

# View the necessary key for connecting
cat ./data/hbbs/id_ed25519.pub

5. App Overview