Skip to main content

Adame is a tool to manage docker-applications as part in a Linux-environment.

Project description

Adame

Supported Python versions PyPI Dependencies

CodeFactor Downloads Coverage

License GitHub last commit GitHub issues

Adame (pronounced: ăˈ.dam) is the abbreviation for "Automatic Docker Application Management Engine". So in short: Adame is a tool to manage docker-applications as part in a Linux-environment.

Since adame is usable declarative and is storing data in a git-repository Adame is suitable as a application-managing-part of a GitOps-environment.

Features

Adame is able to do the following things:

  • Generate new application-environment
  • Start-/Stop the docker-container according to the configuration-file
  • Saves the state of the application inside the docker-container in a git-repository
  • Automatically configure a basic intrusion-detection-system for the network-traffic of the docker-container
  • Automatically export log-files of the managed application

Reference

The reference can be found here.

Runtime-requirements

Adame is intended to run on Linux-systems. Furthermore Adame requires that the following commandline-commands are available on your system:

  • chmod (For setting up permissions on the generated files)
  • chown (For setting up ownerships on the generated files)
  • docker >= 1.27.4 (For starting and stopping Docker-container)
  • git >=2.30.0 (For integrity)
  • gpg (For checking the integrity of commits)
  • kill (For killing snort)
  • pip >= 20.3.1 (On some systems pip3)
  • python >= 3.10 (On some systems python3)
  • rsync (For exporting the log-files to a SIEM-server)
  • ssh (Required for rsync)
  • snort (For inspecting the network-traffic of the application)

Development

Branching-system

This repository applies the GitFlowSimplified-branching-system.

Install dependencies

To develop ScriptCollection it is obviously required that the following commandline-commands are available on your system:

  • python >= 3.10
  • pip3

The pip-packaged which are required for developing on this project are defined in requirements.txt.

Commands like docker-compose or snort are technically not required for development since these commands will be mocked in the unit-tests.

IDE

The recommended IDE for developing Adame is Visual Studio Code. The recommended addons for developing Adame with Visual Studio Code are:

Run testcases

To run the testcases simply execute the script stored in ./Reference/Scripts/RunTestcases.script in the repository's home-directory which is expected to terminate with the exit-code 0.

Build

To Create an installable whl-package simply execute python Setup.py bdist_wheel --dist-dir ..

Installation

To install an Adame simply execute pip install Adame-x.x.x-py3-none-any.whl.

TODO-List

  • Bug: When running in a different folder (like adame startadvanced -c someotherfolder/Adame.configuration) then the prescript and postscript may have wrong working-directories.
  • Feature: Before starting the docker-container then if a container with same name already exists the already existing container should be stopped and then removed to avoid errors due to already existing container-names.
  • Feature: After waiting maximalexpectedstartduration seconds there must be a check whether the container is running (and healthy if the health-information is available). If not then an error must be thrown

License

See License.txt for license-information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

Adame-1.2.36-py3-none-any.whl (16.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page