---
title: "YOURLS на Pethost в один клік"
description: "Власний скорочувач посилань зі статистикою переходів. Шаблон для Pethost: за хвилину-дві застосунок працює на вашій машині — за власною адресою з HTTPS і з щонічними бекапами."
---

[← Усі шаблони](https://pethost.dev/uk/templates/)

# YOURLS на Pethost в один клік

Власний скорочувач посилань зі статистикою переходів

[Задеплоїти на Pethost](https://console.pethost.dev/?template=yourls)

## Що відбудеться

1. Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
2. Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
3. Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: **Ім’я користувача**, **Пароль адміністратора**.
4. За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
5. Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.

## Перші кроки

Увійдіть на https://yourls.sam.pethost.app/admin/ з іменем користувача й паролем, які ви вказали; короткі посилання відкриваються за адресою https://yourls.sam.pethost.app/<слово>. Пароль читається з .env проєкту під час кожного запуску: щоб змінити його, виправте .env і задеплойте ще раз.

## Що запускається

Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.

```
services:
  yourls:
    image: yourls:1.10.6-apache
    restart: unless-stopped
    environment:
      YOURLS_SITE: ${URL}
      YOURLS_USER: ${ADMIN_USERNAME}
      YOURLS_PASS: ${ADMIN_PASSWORD}
      YOURLS_COOKIEKEY: ${COOKIE_KEY}
      YOURLS_DB_HOST: db
      YOURLS_DB_USER: yourls
      YOURLS_DB_PASS: ${DB_PASSWORD}
      YOURLS_DB_NAME: yourls
    # The image runs the PHP files of /docker-entrypoint-init.d before Apache starts: this one
    # waits for the database and makes YOURLS's tables, which its install page would otherwise
    # leave to a visitor's click.
    command:
      - sh
      - -c
      - |
        mkdir -p /docker-entrypoint-init.d
        cat > /docker-entrypoint-init.d/install.php <<'PHP'
        <?php
        for ($$try = 0; $$try < 60; $$try++) {
            try {
                new PDO('mysql:host=' . getenv('YOURLS_DB_HOST') . ';dbname=' . getenv('YOURLS_DB_NAME'), getenv('YOURLS_DB_USER'), getenv('YOURLS_DB_PASS'));
                break;
            } catch (PDOException $$e) {
                sleep(2);
            }
        }
        define('YOURLS_ADMIN', true);
        define('YOURLS_INSTALLING', true);
        require '/var/www/html/includes/load-yourls.php';
        if (!yourls_is_installed()) {
            $$result = yourls_create_sql_tables();
            if (!empty($$result['error'])) {
                fwrite(STDERR, implode("\n", $$result['error']) . "\n");
                exit(1);
            }
        }
        PHP
        exec container-entrypoint.sh apache2-foreground
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mariadb:11.8
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: yourls
      MARIADB_USER: yourls
      MARIADB_PASSWORD: ${DB_PASSWORD}
      MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
    volumes:
      - db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 5s
      retries: 12
      start_period: 60s

volumes:
  db:
```

[compose.yaml](https://pethost.dev/templates/yourls/compose.yaml)[Відкрити на GitHub](https://github.com/pethost-dev/templates/tree/main/yourls)

Pethost · Stephan Gomer · NIP 1133096755

[Шаблони](https://pethost.dev/uk/templates/) [Про нас](https://pethost.dev/about/) [Блог](https://pethost.dev/blog/) [Умови](https://pethost.dev/terms/) [Конфіденційність](https://pethost.dev/privacy/) [Повернення коштів](https://pethost.dev/refunds/) [API](https://pethost.dev/docs/api/) [CLI](https://pethost.dev/docs/cli/) [Плагін](https://github.com/pethost-dev/plugin) [support@pethost.dev](mailto:support@pethost.dev)
