# configuration/constants/deployment.constants.ts

> 55 lines of code and 47 definitions.

Tree: Bane's Lab Deploy
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/deploy#file-deploy-configuration-constants-deployment-constants-ts
Source text: https://banes-lab.com/source/deploy/configuration/constants/deployment.constants.ts.txt

Listed in [configuration/constants](https://banes-lab.com/api/source/deploy/configuration/constants.md), before [configuration/constants/discord.constants.ts](https://banes-lab.com/source/deploy/configuration/constants/discord.constants.ts.md).

## Definitions

- `REMOTE_ROOT` (lexical_declaration, line 4, exported)
- `REMOTE_SITE` (lexical_declaration, line 6, exported)
- `REMOTE_STAGING` (lexical_declaration, line 8, exported)
- `BACKUP_RETENTION` (lexical_declaration, line 10, exported)
- `SITE_ARCHIVE` (lexical_declaration, line 12, exported)
- `ARCHIVE_BINARY` (lexical_declaration, line 14, exported)
- `BUILD_BINARY` (lexical_declaration, line 16, exported)
- `BUILD_ARGUMENTS` (lexical_declaration, line 18, exported)
- `ARCHIVE_TEMPORARY_PREFIX` (lexical_declaration, line 20, exported)
- `PROBE_TIMEOUT_MS` (lexical_declaration, line 22, exported)
- `TLSA_PORT_MARK` (lexical_declaration, line 24, exported)
- `TLSA_PROTOCOL` (lexical_declaration, line 26, exported)
- `DANE_END_ENTITY` (lexical_declaration, line 28, exported)
- `DANE_PUBLIC_KEY` (lexical_declaration, line 30, exported)
- `DANE_SHA256` (lexical_declaration, line 32, exported)
- `SEARCH_PING_ENDPOINT` (lexical_declaration, line 34, exported)
- `SEARCH_PING_ACCEPTED` (lexical_declaration, line 36, exported)
- `BACKUP_PREFIX` (lexical_declaration, line 38, exported)
- `ARCHIVE_SUFFIX` (lexical_declaration, line 40, exported)
- `THUMBNAIL_URL` (lexical_declaration, line 42, exported)
- `MONITORING` (lexical_declaration, line 44, exported)
- `MS_PER_SECOND` (lexical_declaration, line 52, exported)
- `BYTES_PER_MB` (lexical_declaration, line 54, exported)
- `BYTES_PER_GB` (lexical_declaration, line 56, exported)
- `SECONDS_PER_HOUR` (lexical_declaration, line 58, exported)
- `SECONDS_PER_DAY` (lexical_declaration, line 60, exported)
- `STEP_SUMMARY_LIMIT` (lexical_declaration, line 62, exported)
- `COMMIT_MESSAGE_LIMIT` (lexical_declaration, line 64, exported)
- `ELLIPSIS` (lexical_declaration, line 66, exported)
- `STAMP_SEPARATOR` (lexical_declaration, line 68, exported)
- `STAMP_LENGTH` (lexical_declaration, line 70, exported)
- `PATH_SEPARATOR` (lexical_declaration, line 72, exported)
- `LINE_BREAK` (lexical_declaration, line 74, exported)
- `DECIMALS` (lexical_declaration, line 76, exported)
- `PROGRESS_BAR_WIDTH` (lexical_declaration, line 78, exported)
- `PROGRESS_REDRAW_MS` (lexical_declaration, line 80, exported)
- `PROGRESS_LOG_STEP` (lexical_declaration, line 82, exported)
- `PROGRESS_JOURNAL_STEP` (lexical_declaration, line 84, exported)
- `PERCENT` (lexical_declaration, line 86, exported)
- `BAR_FILLED` (lexical_declaration, line 88, exported)
- `BAR_EMPTY` (lexical_declaration, line 90, exported)
- `CARRIAGE_RETURN` (lexical_declaration, line 92, exported)
- `CLEAR_LINE` (lexical_declaration, line 94, exported)
- `SECONDS_PER_MINUTE` (lexical_declaration, line 96, exported)
- `CLOCK_SEPARATOR` (lexical_declaration, line 98, exported)
- `CLOCK_PAD` (lexical_declaration, line 100, exported)
- `CLOCK_FILL` (lexical_declaration, line 102, exported)

## Contained in

- [configuration/constants](https://banes-lab.com/anatomy/deploy/folder-deploy-configuration-constants.md)

## Source

```typescript
import { SITE_LOGO } from "@banes-lab/web/core/assets/image.assets.ts";
import { SITE_URL } from "@banes-lab/web/core/assets/link.assets.ts";

export const REMOTE_ROOT = "/var/www/banes-lab";

export const REMOTE_SITE = `${REMOTE_ROOT}/web`;

export const REMOTE_STAGING = `${REMOTE_ROOT}/staging`;

export const BACKUP_RETENTION = 5;

export const SITE_ARCHIVE = "site.tar.gz";

export const ARCHIVE_BINARY = "tar";

export const BUILD_BINARY = "npx";

export const BUILD_ARGUMENTS: readonly string[] = ["vite", "build", "--logLevel", "error"];

export const ARCHIVE_TEMPORARY_PREFIX = "banes-lab-site-";

export const PROBE_TIMEOUT_MS = 15_000;

export const TLSA_PORT_MARK = "_";

export const TLSA_PROTOCOL = "._tcp.";

export const DANE_END_ENTITY = 3;

export const DANE_PUBLIC_KEY = 1;

export const DANE_SHA256 = 1;

export const SEARCH_PING_ENDPOINT = "https://api.indexnow.org/indexnow";

export const SEARCH_PING_ACCEPTED: ReadonlySet<number> = new Set([200, 202]);

export const BACKUP_PREFIX = "banes-lab-backup_";

export const ARCHIVE_SUFFIX = ".backup.tgz";

export const THUMBNAIL_URL = SITE_URL + SITE_LOGO;

export const MONITORING: readonly (readonly [string, string])[] = [
    ["Security headers", "https://securityheaders.com/?q=banes-lab.com"],
    ["SSL test", "https://www.ssllabs.com/ssltest/"],
    ["Performance", "https://pagespeed.web.dev/"],
    ["HTTP observatory", "https://developer.mozilla.org/en-US/observatory"],
    ["Hardenize", "https://www.hardenize.com/"],
];

export const MS_PER_SECOND = 1000;

export const BYTES_PER_MB = 1_000_000;

export const BYTES_PER_GB = 1_000_000_000;

export const SECONDS_PER_HOUR = 3600;

export const SECONDS_PER_DAY = 86_400;

export const STEP_SUMMARY_LIMIT = 900;

export const COMMIT_MESSAGE_LIMIT = 50;

export const ELLIPSIS = "...";

export const STAMP_SEPARATOR = "-";

export const STAMP_LENGTH = 19;

export const PATH_SEPARATOR = "/";

export const LINE_BREAK = "\n";

export const DECIMALS = 2;

export const PROGRESS_BAR_WIDTH = 30;

export const PROGRESS_REDRAW_MS = 250;

export const PROGRESS_LOG_STEP = 5;

export const PROGRESS_JOURNAL_STEP = 25;

export const PERCENT = 100;

export const BAR_FILLED = "█";

export const BAR_EMPTY = "░";

export const CARRIAGE_RETURN = "\r";

export const CLEAR_LINE = "\u001B[2K";

export const SECONDS_PER_MINUTE = 60;

export const CLOCK_SEPARATOR = ":";

export const CLOCK_PAD = 2;

export const CLOCK_FILL = "0";
```
