tanjun

command module
v0.0.0-...-7f1f14d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2025 License: MIT Imports: 2 Imported by: 0

README

Tanjun

[!IMPORTANT] This tool is still in development and is not yet ready for use.

Tanjun (which means Simple in Japanese) is a Dockerized Deployment Tool to deploy applications to external servers and cloud providers. It is designed to be straightforward to use and keep everything simple for the user.

It's similar to Kamal Deploy but with a different approach.

Requirements

A external reachable server with Docker installed.

Installation

brew install shyim/tap/tanjun

or download the binary from the releases

Commands

  • tanjun init - Initialize a new Tanjun project.
  • tanjun setup - Setup Proxy Server on the remote server (one time).
  • tanjun deploy - Deploy the current application to the remote server.
  • tanjun destroy - Destroy the current application on the remote server.
  • tanjun shell - Open a shell to the remote server contain your application.
  • tanjun logs - Show the logs of the application running on the remote server.
  • tanjun forward - Forward the port of the application running on the remote server to your local machine.

Example configuration

server:
  # IP to your server
  address: 127.0.0.1
  port: 22
  username: root
# The name of the application, one server can contain multiple applications
name: app-name
# The image name to use to push and pull the image
image: "ghcr.io/shyim/test"
proxy:
  # The external reachable domain
  host: localhost
  # A healthcheck url to check if the application is running
  healthcheck:
    path: /admin
app:
  env:
    # set a static environment value
    APP_URL:
      value: 'http://localhost'
  initial_secrets:
    # Generate a random string for the APP_SECRET environment variable and store it to keep it the same
    APP_SECRET:
      expr: 'randomString(32)'
  # Mount directories to the container
  mounts:
    - name: jwt
      path: config/jwt
  # Specify workers to run in the background on the same built image
  workers:
    worker:
      command: 'php bin/console messenger:consume async --time-limit=3600'
  # Specify cronjob to run
  cronjobs:
    - schedule: '@every 5m'
      command: 'php bin/console scheduled-task:run --no-wait'
  # Hooks to run before the new container gets traffic
  hooks:
    # Executed while deployment
    deploy: |
      ./vendor/bin/shopware-deployment-helper run
    # Executed as last step, allowed to fail to run non-critical things
    post_deploy: |
      ./vendor/bin/shopware-deployment-helper run

services:
  # create an mysql database and sets a DATABASE_URL environment variable (based on key name)
  database:
    type: mysql:8.0
    settings:
      sql_mode: 'error_for_division_by_zero'
  # create a redis cache and sets a CACHE_URL environment variable (based on key name)
  cache:
    type: valkey:7.2

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
cmd
tcp-proxy module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL