# Managing your SFP Server

The SFP server provides comprehensive CLI commands for managing all aspects of your server deployment. This page provides an overview of available commands organized by their primary use cases.

## Quick Start

The typical workflow for setting up and managing an SFP server:

1. **Initialize**: [`sfp server init`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) - Set up a new server instance
2. **Start**: [`sfp server start`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) - Launch the server services
3. **Monitor**: [`sfp server status`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) and [`sfp server health`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) - Check server health
4. **Manage**: Use various commands to manage environments, users, and resources
5. **Update**: [`sfp server update`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) - Keep the server up to date

## Command Categories

### &#x20;Lifecycle Management

Essential commands for managing the server lifecycle:

| Command                                                             | Purpose                          | Common Usage                                  |
| ------------------------------------------------------------------- | -------------------------------- | --------------------------------------------- |
| [`init`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)   | Initialize a new server instance | `sfp server init --tenant my-app --mode prod` |
| [`start`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)  | Start server services            | `sfp server start --tenant my-app --daemon`   |
| [`stop`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)   | Stop server services             | `sfp server stop --tenant my-app`             |
| [`status`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Check service status             | `sfp server status --tenant my-app`           |
| [`update`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Update to latest version         | `sfp server update --tenant my-app`           |

### 📊 Monitoring & Operations

Commands for monitoring and operational management:

| Command                                                             | Purpose                       | Common Usage                                          |
| ------------------------------------------------------------------- | ----------------------------- | ----------------------------------------------------- |
| [`health`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Health checks and diagnostics | `sfp server health --detailed`                        |
| [`logs`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)   | View and monitor logs         | `sfp server logs --tenant my-app --follow`            |
| [`scale`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)  | Scale worker services         | `sfp server scale --tenant my-app --normal-workers 3` |

### Authentication & Security

Manage authentication and security:

| Command                                                                        | Purpose             | Common Usage                                            |
| ------------------------------------------------------------------------------ | ------------------- | ------------------------------------------------------- |
| [`auth`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)              | User authentication | `sfp server auth login --email user@example.com`        |
| [`application-token`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Manage API tokens   | `sfp server application-token create --name "CI Token"` |
| [`user`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)              | User management     | `sfp server user list`                                  |

### Environment Management

Manage deployment environments:

| Command                                                                  | Purpose                | Common Usage                                      |
| ------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------- |
| [`environment`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Manage environments    | `sfp server environment create --name production` |
| [`org`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)         | Manage Salesforce orgs | `sfp server org list`                             |
| [`pool`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)        | Manage org pools       | `sfp server pool list`                            |
| [`review-envs`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Review environments    | `sfp server review-envs list`                     |

### Build & Release Management

Commands for managing builds and releases:

| Command                                                                        | Purpose            | Common Usage                                         |
| ------------------------------------------------------------------------------ | ------------------ | ---------------------------------------------------- |
| [`builds`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)            | View build history | `sfp server builds list --repository myorg/myrepo`   |
| [`releasedefinition`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Generate releases  | `sfp server releasedefinition generate -n MyRelease` |
| [`artifacts`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)         | Manage artifacts   | `sfp server artifacts list`                          |

### Configuration & Integration

Configuration and integration management:

| Command                                                                 | Purpose                | Common Usage                |
| ----------------------------------------------------------------------- | ---------------------- | --------------------------- |
| [`repository`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Repository connections | `sfp server repository add` |
| [`webhook`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)    | Webhook configuration  | `sfp server webhook create` |
| [`project`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)    | Project management     | `sfp server project list`   |

### Data Storage

Data and configuration storage:

| Command                                                                | Purpose           | Common Usage               |
| ---------------------------------------------------------------------- | ----------------- | -------------------------- |
| [`doc-store`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Document storage  | `sfp server doc-store get` |
| [`key-value`](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) | Key-value storage | `sfp server key-value set` |

## Common Workflows

### Initial Setup

```bash
# 1. Initialize the server
sfp server init --tenant my-app --mode prod --domain example.com

# 2. Authenticate
sfp server auth login --email admin@example.com

# 3. Start the server
sfp server start --tenant my-app --daemon

# 4. Verify health
sfp server health --detailed
```

### Daily Operations

```bash
# Check server status
sfp server status --tenant my-app

# Monitor logs
sfp server logs --tenant my-app --service app --follow

# Check build status
sfp server builds list --repository myorg/myrepo --days 1

# View environment status
sfp server environment list --status available
```

### Deployment Workflow

```bash
# 1. Lock environment
TICKET=$(sfp server environment lock --name production --json | jq -r '.ticket')

# 2. Deploy (your deployment commands)
sfp release --environment production

# 3. Unlock environment
sfp server environment unlock --name production --ticket $TICKET
```

### Maintenance Operations

```bash
# Scale down for maintenance
sfp server scale --tenant my-app --normal-workers 1 --batch-workers 0

# Update server
sfp server update --tenant my-app

# Scale back up
sfp server scale --tenant my-app --normal-workers 3 --batch-workers 2
```

## Authentication Options

Most server commands support multiple authentication methods:

### User Authentication

```bash
# Login once
sfp server auth login --email user@example.com

# Commands use stored token
sfp server environment list
```

### Application Token (CI/CD)

```bash
# Set token in environment
export SFP_APPLICATION_TOKEN="sfp_app_..."

# Commands use token automatically
sfp server builds list --repository myorg/myrepo
```

## Remote Server Management

All lifecycle commands support managing remote servers via SSH:

```bash
# Remote server operations
sfp server start --tenant my-app \
  --ssh-connection admin@server.example.com \
  --identity-file ~/.ssh/id_rsa

sfp server logs --tenant my-app \
  --ssh-connection admin@server.example.com \
  --identity-file ~/.ssh/id_rsa \
  --follow
```

## Best Practices

1. **Lock Environments During Deployments**: Prevent concurrent deployments with environment locking
2. **Monitor Health Regularly**: Set up automated health checks using `sfp server health`
3. **Scale Appropriately**: Adjust worker counts based on your workload
4. **Keep Servers Updated**: Regularly update to get latest features and security fixes
5. **Use Application Tokens for CI/CD**: Create dedicated tokens for automated processes
6. **Review Logs Regularly**: Monitor logs for errors and performance issues

## Troubleshooting

### Server Won't Start

```bash
# Check status
sfp server status --tenant my-app

# View recent logs
sfp server logs --tenant my-app --tail 500

# Check health with details
sfp server health --detailed
```

### Authentication Issues

```bash
# Clear and re-authenticate
sfp server auth clear --all
sfp server auth login --email user@example.com

# Verify authentication
sfp server health --check-auth
```

### Performance Issues

```bash
# Check worker status
sfp server status --tenant my-app --json | jq '.workers'

# Adjust scaling
sfp server scale --tenant my-app --critical-workers 2 --normal-workers 4
```

## Next Steps

* **Detailed Command Reference**: See the [CLI Reference](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) for complete command documentation
* **Architecture Overview**: Learn about the [server architecture](https://docs.flxbl.io/flxbl/sfp-server/broken-reference)
* **Installation Guide**: Follow the [installation guide](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) for detailed setup instructions
* **API Reference**: Explore the [API documentation](https://docs.flxbl.io/flxbl/sfp-server/broken-reference) for programmatic access

> **Note**: All server commands require sfp-pro. Community edition users should upgrade to access server functionality.

> **Tip**: Use `--json` flag with commands for scripting and automation purposes.
