All Projects → Okty-io → okty-config

Okty-io / okty-config

Licence: GPL-3.0 license
Configuration repository of the simplest application to create docker projects

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to okty-config

Strictyaml
Type-safe YAML parser and validator.
Stars: ✭ 836 (+6330.77%)
Mutual labels:  config, yml
Data
Extended implementation of ArrayObject - useful collection for any config in your system (write, read, store, change, validate, convert to other format and etc).
Stars: ✭ 77 (+492.31%)
Mutual labels:  config, yml
exenv
Exenv makes loading environment variables from external sources easy.
Stars: ✭ 35 (+169.23%)
Mutual labels:  config, yml
Akshay-Vs
Config files for my GitHub profile.
Stars: ✭ 17 (+30.77%)
Mutual labels:  config
props
config source library for golang, support properties/yaml/ini file、zookeeper\consul\etcd k/v k/props
Stars: ✭ 57 (+338.46%)
Mutual labels:  config
tianyamingyu
Config files for my GitHub profile.
Stars: ✭ 41 (+215.38%)
Mutual labels:  config
bem-sdk
BEM SDK packages
Stars: ✭ 83 (+538.46%)
Mutual labels:  config
onion
Layer based configuration for golang
Stars: ✭ 104 (+700%)
Mutual labels:  config
Slim-Config
A file configuration loader that supports PHP, INI, XML, JSON, and YML files for the Slim Framework. It internally uses https://github.com/hassankhan/config.
Stars: ✭ 28 (+115.38%)
Mutual labels:  config
.macOS-emacs.d
😈My personal Emacs configuration on macOS
Stars: ✭ 108 (+730.77%)
Mutual labels:  config
parse it
A python library for parsing multiple types of config files, envvars & command line arguments that takes the headache out of setting app configurations.
Stars: ✭ 86 (+561.54%)
Mutual labels:  config
nestjs-config
NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
Stars: ✭ 40 (+207.69%)
Mutual labels:  config
Meh
Python configuration files in Python. ¯\_(ツ)_/¯
Stars: ✭ 20 (+53.85%)
Mutual labels:  config
tomlj
A Java parser for Tom's Obvious, Minimal Language (TOML).
Stars: ✭ 72 (+453.85%)
Mutual labels:  config
profig
Powerful configuration management for Scala (JSON, properties, command-line arguments, and environment variables)
Stars: ✭ 25 (+92.31%)
Mutual labels:  config
Machfiles
The dotfiles you see in all my videos
Stars: ✭ 347 (+2569.23%)
Mutual labels:  config
config
Bunch of scripts that keep me productive
Stars: ✭ 29 (+123.08%)
Mutual labels:  config
nvim
Personal neovim config
Stars: ✭ 24 (+84.62%)
Mutual labels:  config
ConfigTools
把Excel配置表导出成Json格式, 可供服务器,客户端(Unity,Laya)使用, 可直接根据表结构生成对应的代码支持C#和TypeScript. Export Excel configuration table into Json format, which can be used by server and client (Unity, Laya), and directly generate code corresponding to table structure to support C # and TypeScript.
Stars: ✭ 59 (+353.85%)
Mutual labels:  config
yii2-yandex-market-yml
Yii2 module for automatically generation Yandex.Market YML
Stars: ✭ 14 (+7.69%)
Mutual labels:  yml

Okty
Okty - Configuration

The simplest application to create your docker projects.

                                              Build Status Dependencies Contributions welcome License: GPL v3

What is Okty ?ConfigurationContributeLicenseCredits

What is Okty ?

Okty is a simple tool to generate customized docker-compose files.
This is the configuration repository, you may find more information about this project on the main repository

Configuration

Each available container has it own yml configuration file in the "containers" folder

Configuration has simples mandatories fields :

name: "The displayed label"
image: "Logo of the container (It has to come from an https source)"
docker: "The name of the image to pull from the docker hub"
version: "The version of of the specified image"
config: []

Config entry is a little bit more complicated and will contains all the options to customize your container

Config

In this array, each entry will be considered as a form group.
In order to make easier setup form for the end user, we recommend to split your configuration by thematics groups.

You need to specify an unique ID for each group and an associated label

config:
  - 
    id: "Unique_ID"
    label: "Group Label"
    fields: []

Fields

Before creating any configuration for your container, you have to had the container id field.
If this field is missing Okty won't be able to work properly.

- 
  id: name 
  label: "Container ID"
  type: input
  base: container_id
  destination: id
  value: php # Change this by a default value
  validators:
    required: true

(This is a default structure for your fields)

Okty may handle three types of configuration for your container :

  • Volumes
  • Ports
  • Environment

For each type, those three fields are required :

id: Unique_Id
label: "Input label"
destination: volumes|ports|environment
type: input|select-container|multi-select|select
validators: []

Destination

The first step to build your configuration file is to define the data you need

1. Volumes

This configuration allows you to bind a folder from the host machine to the inside of the container. If you need to bind a volume, you have to add these fields :

destination: volumes
base: "/usr/share/nginx/html" # The path of the folder inside the container
value: "./" # The default path on the host
2. Ports

This configuration allows you to bind a port from the host machine to the container. If you need to bind a port, you have to add these fields :

destination: ports
base: "80" # Port of the container to bind
value: "8080" # Port on the host machine
3. Environment

This type of configuration allows you to add a env variable in the container.
If you need to add a variable, you have to had these fields :

destination: environment
base: VAR_NAME # Variable name
value: "128M" # Default value 

This is the main configuration used by Okty.
If you need to customize an existing image, you should create a new one which extends the image you need and set inside configuration from an entrypoint script.
You may check this folder, this is done through two files : Dockerfile and entrypoint.sh


Type

Once you know which data will be needed you may define how user should fill them.
There is four type of input available

1. Input

This one allows user to write data into a basic text field. You have to add this line to your field declaration.
The input data will replace the default value.

type: input
2. Select Container

This one allows user to select an existing container from his project. You have to add this line to your field declaration. Output will be the unique container_id of the selected one.

type: select-container
3. Multi Select

This input allows the user to select multiple value from a defined source.
You have to add these lines to your field declaration.
Output will be a string of all values separated by a ";"

type: multi-select 
source: 
  "value1": "Label 01"
  "value2": "Label 02"
  "value3": "Label 02"

In order the exploit those data, you have to split the output string and iterate through each value in the entrypoint script.
There is an example right there

4. Simple Select

This input works exactly like the multi-select but user may only choose one value.
Output will be a string with the value of the selected item.

type: select 
source: 
  "value1": "Label 01"
  "value2": "Label 02"
  "value3": "Label 02"

Validators

In order to make sure users provide functional data, you may add some validations on your fields. There are currently three types of validators :

validators:
    required: true
    numbers: { min: 0, max: 65535 }
    regex: "^[a-z]$"

Contribute

Okty needs help to stay up to date and improve his features.
If something is missing or broken, feel free to open an issue or made a pull request.

Maybe the container you want isn't available ? Make your own or ask for it on through pull requests or issues !

Contributors


Mapsred

agranjeon

orions

Pierstoval

kmarques

License

Okty is made available under the GNU GPL v3 License.

Credits

Okty is created and maintained by Samuel Alves Antunes, Laurent Bassin, Maxime Marquet & Jordan Venant.

We're open to suggestions, feel free to message us or open an issue.
Pull requests are also welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].