Build your first agent in just a few minutes with [Rasa Copilot](https://hello.rasa.com/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta).

### Python action server

The action server, when built with Python, can be run by using the `rasa` command or directly as a python module. The action server supports two protocols to invoke custom actions: HTTP and gRPC. By default, the action server runs on the HTTP protocol. To run the action server on gRPC protocol, you need to specify the `--grpc` flag.

## Running the action server

## Running action server over HTTP(S) protocol

The action server supports both secure (HTTPS) and insecure HTTP connections.

### HTTP protocol

To run the action server over HTTP protocol use this command:

- Using Rasa command
  
  ```bash
  rasa run actions
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk
  ```

When running the action server over HTTP protocol, make sure that Rasa is also configured to [use HTTP protocol](/content/docs/reference/integrations/action-server/actions/#http-protocol/index.html).

### HTTPS protocol

To run the action server over HTTPS protocol use this command:

- Using Rasa command  
  
  ```bash
  rasa run actions --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key
  ```

When running the action server over HTTPS protocol, make sure that the Rasa server is also configured to [use HTTPS protocol](/content/docs/reference/integrations/action-server/actions/#https-protocol/index.html).

### Listen on specific address

You can make your action server listen on a specific address using the `SANIC_HOST` environment variable:

- Using Rasa command
  
  ```bash
  SANIC_HOST=192.168.69.150 rasa run actions
  ```
  
- Directly as a python module
  
  ```bash
  SANIC_HOST=192.168.69.150 python -m rasa_sdk
  ```

## Running the action server on gRPC protocol

The action server supports both secure and insecure gRPC connections. By default, the action server runs on insecure gRPC connection.

### Insecure gRPC connection

To run the action server to accept insecure gRPC connections, use this command:

- Using Rasa command
  
  ```bash
  rasa run actions --grpc
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk --grpc
  ```

When running the action server to accept insecure gRPC connections, make sure that the Rasa server is also configured to [use insecure gRPC connections](/content/docs/reference/integrations/action-server/actions/#insecure-grpc-connection/index.html).

### Secure gRPC connection

To run the action server to accept secure gRPC connections, you need to specify the `--grpc`, together with the `--ssl-certificate` and `--ssl-keyfile` flags:

- Using Rasa command
  
  ```bash
  rasa run actions --grpc --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk --grpc --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key
  ```

When running the action server to accept secure gRPC connections, make sure that the Rasa server is also configured to [use secure gRPC connections](/content/docs/reference/integrations/action-server/actions/#secure-tls-grpc-connection/index.html).

## Specifying the actions module or package

By default, the action server will look for your actions in a file called `actions.py` or in a package directory called `actions`. You can specify a different actions module or package with the `--actions` flag.

- Using Rasa command
  
  ```bash
  rasa run actions --actions my_actions
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk --actions my_actions
  ```

Using the command above, the action server will expect to find your actions in a file called `my_actions.py` or in a package directory called `my_actions`.

## Other options

To see the full list of options for running the action server, run:

- Using Rasa command
  
  ```bash
  rasa run actions --help
  ```
  
- Directly as a python module
  
  ```bash
  python -m rasa_sdk --help
  ```
