Универсальный и гибкий биллинг

Открытое решение на Django с гибкой панелью управления и простой интеграцией

Возможности для управления сервером

Гибкая система

Гибкая панель

Настраиваемый интерфейс через JSON-конфигурации. Добавляйте только нужные элементы управления.

Пример конфигурации для VPS

Настройте панель под свои нужды с помощью простого JSON

// Конфигурация панели для VPS сервера
{
    "tabs": [
        {
            "id": "vps_stats",
            "title": "Статистика VPS",
            "cards": [
                {
                    "title": "Использование CPU",
                    "card_type": "card_progress",
                    "size": 1,
                    "get_data": "{service.actions.get_cpu_usage}?service_id={service.id}",
                    "validation": "percent"
                },
                {
                    "title": "Использование RAM",
                    "card_type": "card_progress",
                    "size": 1,
                    "get_data": "{service.actions.get_ram_usage}?service_id={service.id}",
                    "validation": "percent"
                },
                {
                    "title": "Дисковое пространство",
                    "card_type": "card_progress",
                    "size": 1,
                    "get_data": "{service.actions.get_disk_usage}?service_id={service.id}",
                    "validation": "percent"
                },
                {
                    "title": "Сетевой трафик",
                    "card_type": "card_2vals",
                    "size": 2,
                    "get_data_1": "{service.actions.get_network_in}?service_id={service.id}",
                    "get_data_2": "{service.actions.get_network_out}?service_id={service.id}",
                    "validation": "bytes"
                }
            ]
        }
    ]
}

Интеграция платежей через ЮKassa

Пример работы с платежной системой в Django

# Пример работы с ЮKassa в Django
from yookassa import Configuration, Payment
from django.conf import settings
from decouple import config

# Настройка подключения
Configuration.configure(config("YK_ID", default=""), config("YK_KEY", default=""))

def create_payment(amount, description, user_id):
    """
    Создание платежа в ЮKassa
    :param amount: Сумма платежа
    :param description: Описание платежа
    :param user_id: ID пользователя для возврата
    :return: URL для оплаты и статус
    """
    try:
        payment = Payment.create({
            "amount": {
                "value": f"{float(amount):.2f}",
                "currency": "RUB"
            },
            "confirmation": {
                "type": "redirect",
                "return_url": f"{settings.BASE_URL}/payments/return?user_id={user_id}"
            },
            "description": description,
            "capture": True,
            "metadata": {
                "user_id": user_id
            }
        })
        
        return {
            'payment_url': payment.confirmation.confirmation_url,
            'status': payment.status,
            'payment_id': payment.id
        }
    except Exception as e:
        # Логирование ошибки
        logger.error(f"Ошибка создания платежа: {e}")
        raise

def check_payment(payment_id):
    """
    Проверка статуса платежа
    :param payment_id: ID платежа в ЮKassa
    :return: Текущий статус платежа
    """
    payment = Payment.find_one(payment_id)
    return payment.status

Начните использовать FreshCore уже сегодня

Полная документация и примеры интеграции доступны на Gitea

Изучить документацию