semvec/pypi-packages huggingface dataset:
restack-sdk-cloud 1.0.14
Deploy to Restack with Cloud SDK
License: MIT
Requires Python: >=3.6

# Restack Cloud sdk

Restack Cloud SDK allows you to manage and deploy stacks and applications to the Restack platform.

## Installation

First, install the necessary dependencies:

```node
pip install restack-sdk-cloud
```

## Configuration

Create a `.env` file in the root of your project and add your Restack Cloud token:
To get your cloud token navigate to the restack console and generate a new one under your workspace settings.

```env
RESTACK_CLOUD_TOKEN=your_restack_cloud_token
```

In case you don't want the SDK to ask for your confirmation before applying changes set on your `.env`. This is ideally set on your cicd pipeline so there is no blocking prompt and deployment doesn't asks for user confirmation.

```env
RESTACK_CICD=true
```

## Usage

Below is an example of how to use the Restack Cloud SDK to create and deploy stacks and applications.

### Example

Create a file named `restack_up.py` and add the following content:

```python
import os
from restack_sdk_cloud import RestackCloud

async def main():
    # Initialize the RestackCloud client with the Cloud token from environment variables
    restack_cloud_client = RestackCloud(os.getenv('RESTACK_CLOUD_TOKEN'))

    # Define the frontend application configuration
    frontend_app = {
        'name': 'frontend-python',
        'dockerFilePath': 'frontend/Dockerfile',
        'dockerBuildContext': 'frontend',
        'environmentVariables': [
            {
                'name': 'NEXT_PUBLIC_API_HOSTNAME',
                'linkTo': backend_app['name'],
            },
        ],
    }

    # Configure the stack with the applications
    await restack_cloud_client.stack({
        'name': 'development environment python',
        'previewEnabled': False,
        'applications': [frontend_app],
    })

    # Deploy the stack
    await restack_cloud_client.up()

# Run the main function
if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

```

## API

```typescript

- `token`: Your Restack SDK token. You can generate a token in the Restack console under your workspace settings.

## Notes

Stack names are used as unique identifiers, so when creating multiple stacks on restack_up config file please make sure names are unique. Application name uniqueness is only bound to the scope inside the stack it belongs to. Meaning you can have two apps with same name as long as they are not part of the same stack.
```