Skip to content

Instantly share code, notes, and snippets.

@opencoca
Created March 3, 2023 12:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save opencoca/9f218bffd06a66276877d3979f0fee7b to your computer and use it in GitHub Desktop.
Save opencoca/9f218bffd06a66276877d3979f0fee7b to your computer and use it in GitHub Desktop.
One Click App dev

How to create a one-click app (as of v1.8.0):

First, have a look at this simple example. Now, read on for more details:

  • Find/create a docker-compose file for the app you're interested in.
  • Add captainVersion: 4 to the very top of the yaml file.
  • Add this section to the end of the yaml file:
captainVersion: 4
caproverOneClickApp:
variables:
- id: '$$cap_myapp_version'
label: Awesome App Version
defaultValue: '1.2.3'
description: Check out their Docker page for the valid tags https://hub.docker.com/r/....../tags
validRegex: '/.{1,}/'
instructions:
start: |-
A description that will be displayed to the user when they
are installing one click app!
It can be multiline and contain more details and probably special
hardware requirements!
end: |-
A summary when the app is deployed!
It can be multiline.
It can also include the dynamic parameters such as
$$cap_appname and $$cap_other_random_char
displayName: The Awesome App
isOfficial: true ## Only if all images used here are official or from a trusted source.
description: A relatively short description, less than 200 characters.
documentation: This docker-compose is taken from example.com
captainVersion: 4
services:
'$$cap_appname':
image: privatebin/nginx-fpm-alpine:$$cap_version
environment:
TZ: '$$cap_tz'
PHP_TZ: '$$cap_tz'
volumes:
- '$$cap_appname-data:/srv/data'
caproverExtra:
containerHttpPort: '8080'
caproverOneClickApp:
variables:
- id: '$$cap_version'
label: PrivateBin Version
defaultValue: '1.3.4'
description: Check out their Docker page for the valid tags https://hub.docker.com/r/privatebin/nginx-fpm-alpine/tags
validRegex: "/^([^\\s^\\/])+$/"
- id: '$$cap_tz'
label: Time Zone
defaultValue: America/New_York
description: Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
validRegex: '/.{1,}/'
instructions:
start: |-
PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data.
Data is encrypted and decrypted in the browser using 256bit AES in Galois Counter mode.
More details: https://github.com/PrivateBin/PrivateBin
end: |-
PrivateBin has been successfully deployed!
displayName: PrivateBin
isOfficial: true
description: A minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.
documentation: See https://github.com/PrivateBin/docker-nginx-fpm-alpine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment