Metadata-Version: 2.4
Name: plash_cli
Version: 0.3.4
Summary: CLI for the Plash hosting service
Home-page: https://github.com/AnswerDotAI/plash_cli
Author: Jeremy Howard
Author-email: info@fast.ai
License: Apache Software License 2.0
Keywords: nbdev jupyter notebook python
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastcore
Requires-Dist: httpx>=0.28.1
Requires-Dist: python-dotenv
Requires-Dist: pyjwt
Requires-Dist: cryptography
Provides-Extra: dev
Requires-Dist: bash_kernel; extra == "dev"
Requires-Dist: nbdev; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Plash


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

> [!WARNING]
>
> Plash is in Beta and we have released it in its semi-stable state to
> gather early feedback to improve. We do not recommend hosting critical
> applications yet.

## What is Plash

Plash is a next-generation deployment platform for fast, hassle-free
Python application hosting. It’s designed to be:

- **Simple and streamlined** - deploy your applications with minimal
  configuration
- **Developer-focused** - built for coders, not cloud engineers
- **Fast and efficient** - get your app online in seconds, not days

Plash handles all the deployment complexities so you can focus on what
matters: building great applications. With Plash, you can deploy any
Python app using straightforward commands and configurations, letting
you ship your work quickly and reliably.

Whether you’re building web services, APIs, data applications, or tools,
Plash provides the infrastructure backbone so you can concentrate on
creating a splash with your code.

## Tutorial: deploy your first app

In this tutorial you will learn how to deploy your first app. This
tutorial will explore the basics of using Plash and help you get
familiar with it at a high level.

**Prerequisites:**

- A registered account at <https://pla.sh>
- Basic terminal / command line skills

### 1. Installation

Install Plash comandline interface (CLI) with pip:

``` sh
pip install plash-cli
```

The CLI lets you manage your whole app’s lifecycle

### 2. CLI Login

Authenticate with your Plash account:

``` sh
plash_login
```

This command opens your browser to authenticate with your Plash account.
After completing the login process, you’ll see a “complete” confirmation
page in your browser.

Return to your terminal where you’ll find the confirmation message:

> Authentication successful! Config saved to
> <your-global-config-path>/plash_config.json

### 3. Create your first app

Create a new directory for your first app:

``` bash
mkdir -p plash-tutorial
cd plash-tutorial
```

Next, create the `main.py` file:

``` python
from fasthtml.common import *

app, rt = fast_app()

@rt
def index():
    return H1("Hello, world!")

serve()
```

This is a basic [FastHTML](https://fastht.ml) app. Plash also supports
other popular python frameworks.

> [!WARNING]
>
> Your app must use port 5001, as this is the port exposed by Plash’s
> Docker container. It also happens to be the default for FastHTML apps.

And create the `requirements.txt` file:

``` python
python-fasthtml
```

### 4. Deploy your app

Now that you’ve created your app files, you’re ready to deploy! From
your `plash-tutorial` directory, run: `plash_deploy`

This command will:

1.  Package your application files
2.  Upload them to Plash’s servers
3.  Build and deploy your application

``` bash
plash_deploy
```

    Initializing deployment...
    ✅ Upload complete! Your app is currently being built.
    It will be live at https://example-app.pla.sh

**Note:** You’ll see a different url that has been randomly generated
for your app.

### 5. View your app

Your app should be ready a couple of seconds after running the deploy
command.

Once your app is ready, you can:

1.  Open the provided URL in your browser, or
2.  Use the convenient plash_view command to open it automatically:

``` sh
plash_view
```

When you visit that page you should see “Hello, World!”

🎉 Congratulations! You deployed your first app on Plash!

## Where to go from here

Learn more about what Plash has to offer in the rest of the docs at:
<https://docs.pla.sh>

To learn more about creating web apps with FastHTML, we recommend
looking at the official docs at: <https://fastht.ml/docs/>. In
particular, we recommend the following:

1.  [OAuth](https://fastht.ml/docs/explains/oauth.html) - Setup
    authentication for your Plash App with Google Sign-In or other OAuth
    Providers.
2.  [Stripe](https://fastht.ml/docs/explains/stripe.html) - Accept
    payments for your products hosted on Plash with Stripe.

Would you like to use a different python web framework? Then check out
the [examples
section](https://github.com/AnswerDotAI/plash_cli/tree/main/examples) of
the repo, it has examples for many popular python web frameworks like
FastAPI, Gradio, and Streamlit.
