stackzilla

An ORM for your application stack.


License
AGPL-3.0
Install
pip install stackzilla==0.2.1

Documentation

Stackzilla

Stackzilla

stackzilla

codecov unit-test Python 3.7 | 3.8 | 3.9 | 3.10 pyPI

Stackzilla is a Python ORM for managing application infrastructure and software. Stackzilla's object-oriented design allows for complete customization by the developer, if that level of customization is needed. For simpler deployments, Stackzilla offers an incredibly easy interface for Python developers to work with.

Installation

Install and update using pip.

pip install -U stackzilla

View the Stackzilla PyPI package here.

Usage

Check out our getting started guide for installation and usage.

Blueprint Example

Here is a simple blueprint definition for a server on Linode.

import os
from stackzilla.resource.ssh_key import StackzillaSSHKey
from stackzilla.provider.linode.instance import LinodeInstance

# This is our personal access token for interacting with the Linode API
LinodeInstance.token = os.getenv('STACKZILLA_LINODE_TOKEN')

class MyKey(StackzillaSSHKey):
    def __init__(self) -> None:
        super().__init__()
        self.key_size = 2048


class MyServer(LinodeInstance):
    def __init__(self):
        super().__init__()
        self.region = 'us-east'
        self.type = 'g6-nanode-1'
        self.image = 'linode/alpine3.12'
        self.label = 'Stackzilla_Test-Linode.1'
        self.tags = ['testing']
        self.private_ip = False
        self.ssh_key = MyKey

Have a question?

All support requests are handled through GitHub Discussions. Please only open a GitHub issue if you've found a bug, or have a feature request.

Contributing

To get started with contributing to the Stackzilla project, visit the developer documentation. Thank you for your interest!

License

Stackzilla is licensed under the GNU Affero General Public License v3.0 license See LICENSE for more information.