Nền tảng thiết kế AI-native, self-hosted, thay thế Canva

Nội dung

    Trong bối cảnh nội dung số ngày càng đóng vai trò then chốt, nhu cầu về một công cụ thiết kế mạnh mẽ, linh hoạt và kiểm soát được dữ liệu là điều không thể thiếu. HyCanvasxuất hiện như một giải pháp thay thế đầy hứa hẹn cho các nền tảng thiết kế đám mây như Canva, nhưng với triết lý hoàn toàn khác:self-hosted,AI-nativekhông có watermark.Canva mã nguồn mở, tự host trên máy chủ của bạn với chỉ một file Go.
    Một số điểm nổi bật:
    * Thiết kế poster, slide, tài liệu, bảng tính và whiteboard trên cùng một nền tảng.
    * Xuất file PNG và PDF chất lượng cao.
    * Định dạng tài liệu mở, dễ tích hợp với hệ thống khác.
    * Brand Kit để quản lý màu sắc, font và tài nguyên thương hiệu.
    * Lớp AI “Bring Your Own Key” – sử dụng API key của chính bạn, dữ liệu không rời khỏi máy chủ.
    * Có thể tự triển khai (self-host) để kiểm soát hoàn toàn dữ liệu. (⁠Reddit)
    Về công nghệ, HyCanvas sử dụng frontend TypeScript chạy trên Canvas2D, kết hợp với backend Go được đóng gói thành một binary tự chứa. Dữ liệu được lưu bằng PostgreSQL, giúp việc triển khai và mở rộng khá đơn giản.

    HyCanvas là gì?

    HyCanvas là một nền tảng thiết kế được xây dựng trên HTML Canvas với rendering engine tùy chỉnh, mang đến trải nghiệm thiết kế mượt mà và phản hồi nhanh. Nó hỗ trợ nhiều loại tài liệu: từ đồ họa mạng xã hội, bài thuyết trình, video, whiteboard, tài liệu văn bản cho đến bảng tính.

    Điểm nhấn lớn nhất:mọi thiết kế đều thuộc sở hữu của bạn. Không có watermark, không có paywall, không bị giới hạn tính năng. Bạn có thể xuất tác phẩm sang các định dạng phổ biến như PNG, PDF mà không bị đóng dấu hay ràng buộc nào.

    Nền tảng thiết kế AI-native, self-hosted, thay thế Canva

    Tính năng nổi bật

    AI tích hợp sâu

    HyCanvas được xây dựng theo hướngAI-native, với cơ chếbring-your-own-key– bạn tự mang khóa API của mình, hỗ trợ OpenAI, Anthropic, DeepSeek hoặc endpoint tùy chỉnh. Không cần khóa API, bạn vẫn có thể sử dụng các công cụ nhưCritica(phê bình thiết kế),Armonizzazione(hài hòa màu sắc),Auto-layoutAuto-animate.

    Các tính năng AI bao gồm:

    • Trợ lý đàm thoại có thể lên kế hoạch và áp dụng chỉnh sửa
    • Magic Design– tạo trang hoàn chỉnh từ văn bản
    • Tạo ảnh, thay đổi phong cách (restyling) và phê bình thiết kế

    Editor chuyên nghiệp

    Giao diện editor được tổ chức khoa học với các bảng điều khiển:

    • Elements: hình khối, đường kẻ, khung ảnh, grid, bảng, biểu đồ, mã QR
    • Text: font pairing được tuyển chọn, kho font tìm kiếm được, hỗ trợ tải font tùy chỉnh (TTF, OTF, WOFF, WOFF2)
    • Brand Kit: quản lý màu sắc, font, logo, giọng nói thương hiệu, với cơ chế khóa cho admin

    Cộng tác thời gian thực

    HyCanvas hỗ trợ làm việc nhóm mạnh mẽ:

    • Chỉnh sửa thời gian thực với avatar, con trỏ chia sẻ, chế độ follow
    • Khóa tự động trên các thành phần, chỉnh sửa ngoại tuyến và đồng bộ khi có kết nối lại
    • Comment dạng thread, ghim trên canvas, mention, emoji, chuyển thành task với người phụ trách, trạng thái và hạn chót
    • Yêu cầu phê duyệt với cơ chế lock server-side sau khi được approve

    Bảo mật và quyền kiểm soát

    • Chia sẻ qua email với các cấp độ quyền tùy chỉnh: view, comment, edit
    • Link công khai có thể đặt mật khẩu, thời hạn, yêu cầu đăng nhập
    • Vai trò tùy chỉnh: view, comment, edit, share, approve, manage roles, delete
    • Xác thực hai yếu tố (TOTP), quản lý phiên hoạt động, hỗ trợ Single Sign-On

    Yêu cầu hệ thống

    Thành phần

    Yêu cầu

    Hệ điều hành

    Linux (x86_64, ARM64) hoặc macOS (Apple Silicon)

    Cơ sở dữ liệu

    PostgreSQL

    Port

    8005 (mặc định, có thể tùy chỉnh)

    Dung lượng

    Tối thiểu 2GB RAM, khuyến nghị 4GB+

    Hướng dẫn cài đặt

    Cách 1: Cài đặt bằng Binary (Khuyến nghị)

    HyCanvas cung cấp binary pre-compiled, cách cài đặt đơn giản và nhanh nhất.

    Trên Linux

    Ti binary từ GitHub Releases

    wget //github.com/hyscaler/HyCanvas/releases/download/vX.X.X/hycanvas_X.X.X_linux_amd64.tar.gz

    # Gii nén

    tar -xzf hycanvas_X.X.X_linux_amd64.tar.gz

    # Cp quyn thực thi

    chmod +x hycanvas

    # Khi chạy và cu hình ln đu

    ./hycanvas service start

    Ví dụ: Với Orange Pi 3B (ARM64), tải filelinux_arm64thay vìlinux_amd64.

    Trên macOS (Apple Silicon)

    # Ti binary cho macOS ARM64: hycanvas_X.X.X_darwin_arm64.tar.gz

    wget //github.com/hyscaler/HyCanvas/releases/download/vX.X.X/hycanvas_X.X.X_darwin_arm64.tar.gz

    # Gii nén

    tar -xzf hycanvas_X.X.X_darwin_arm64.tar.gz

    # Cp quyn thực thi

    chmod +x hycanvas

    # Khi chạy

    ./hycanvas service start

    Dấu ./ có nghĩa là “tìm file hycanvas trong thư mục hiện tại”. Nếu bạn đang ở đúng thư mục chứa file binary, lệnh này sẽ hoạt động.

    hycanvas service start

    Lỗi zsh: command not found: hycanvas xảy ra là do shell không tìm thấy lệnh hycanvas trong các thư mục đã được khai báo trong biến môi trường PATH.

    Nếu bạn muốn gõ hycanvas từ bất kỳ đâu, hãy thêm đường dẫn thư mục chứa binary vào biến PATH.

    Bước 1: Tìm đường dẫn tuyệt đối đến thư mục chứa file hycanvas. Ví dụ: /Users/your-username/Downloads hoặc nơi bạn đã giải nén.

    Bước 2: Mở file cấu hình shell ~/.zshrc (vì bạn đang dùng zsh):

    nano ~/.zshrc
    Bước 3: Thêm dòng sau vào cuối file (thay /path/to/directory bằng đường dẫn thực tế):

    export PATH=”$PATH:/path/to/directory”
    Bước 4: Lưu file và tải lại cấu hình:

    source ~/.zshrc
    Sau đó thử chạy lại hycanvas service start

    Tự build từ mã nguồn

    Nếu cả hai cách trên đều không khả thi, bạn có thể tự build HyCanvas từ mã nguồn.

    Clone repository:

    git clone //github.com/hyscaler/HyCanvas.git
    cd HyCanvas
    Cài đặt môi trường: Dự án sử dụng Node.js. Bạn cần cài đặt Node.js và pnpm.

    Build và chạy: Thực hiện theo hướng dẫn trong file README.md của dự án (thường là các lệnh pnpm install, pnpm run build, và pnpm run start). Nếu bạn đã thử cách trên mà vẫn không được, có thể binary bạn tải về không tương thích với macOS hoặc chưa được cấp quyền thực thi.

    • Cấp quyền thực thi: Chạy lệnh chmod +x hycanvas trong thư mục chứa file.
    • Kiểm tra kiến trúc: Chạy file hycanvas để xem binary được build cho nền tảng nào. Nếu hiển thị Mach-O là dành cho macOS, nếu ELF là dành cho Linux.
    • Nếu binary là Linux (ELF): Bạn không thể chạy trực tiếp trên macOS. Hãy sử dụng Docker như đã hướng dẫn ở phần trước.

    Tóm lại:

    • Ưu tiên dùng binary: Kiểm tra trang Releases cho file darwin_arm64.
    • Dùng Docker: Nếu không có binary, Docker là cách nhanh và sạch sẽ nhất.
    • Tự build: Khi hai cách trên không khả thi.

    Lần chạy đầu tiên, HyCanvas sẽ hiển thị wizard cấu hình qua trình duyệt hoặc terminal:

    1. Wizard yêu cầu nhậpmã bí mật(wizard access secret) hiển thị trên terminal
    2. Nhập thông tin kết nối PostgreSQL
    3. Cấu hình storage (mặc định là ổ cứng cục bộ)
    4. Thiết lập email (tùy chọn)

    Sau khi hoàn tất, file.envsẽ được tạo tự động, migration database được chạy và ứng dụng khởi động.

    Quản lý dịch vụ:

    ./hycanvas service start # Khi động

    ./hycanvas service stop # Dừng

    ./hycanvas service restart # Khi động lại

    ./hycanvas service status # Kim tra trạng thái

    ./hycanvas service log # Xem log

    Lưu ý quan trọng: Dịch vụ sẽkhông tự động khởi động cùng hệ thống. Để làm điều này, bạn có thể thêm crontab:@reboot /path/to/hycanvas service start.

    Cách 2: Cài đặt bằng Docker Compose

    Nếu bạn ưa thích container hoặc không tìm thấy binary cho nền tảng của mình, Docker là lựa chọn tuyệt vời.

    # Clone repository

    git clone //github.com/hyscaler/HyCanvas.git

    cd HyCanvas

    # Tạo file .env từ mu

    cp .env.example .env

    # Sa .env với thông tin ca bạn

    nano .env

    Nội dung tối thiểu trong.env:

    env

    JWT_SECRET=”<chuoi-hex-32-byte-ngau-nhien>”

    APP_PORT=8005

    DATABASE_URL=”postgresql://user:pass@host:5432/hycanvas?schema=public”

    TạoJWT_SECRET:

    bash

    openssl rand -hex 32

    Sau đó chạy:

    bash

    docker compose up -d

    Ứng dụng sẽ chạy tại//localhost:8005.

    Chạy với PostgreSQL

    Nếu bạn muốn có sẵn cả database trong Docker:

    # Tạo .env với các biến cho bundled Postgres

    echo “JWT_SECRET=$(openssl rand -hex 32) > .env

    echo “POSTGRES_USER=hycanvas” >> .env

    echo “POSTGRES_PASSWORD=<mat-khau-manh>” >> .env

    echo “POSTGRES_DB=hycanvas” >> .env

    echo “COMPOSE_PROFILES=bundled” >> .env

    echo “APP_PORT=8005” >> .env

    # Chạy với compose file production

    docker compose -f docker-compose.prod.yml up –build -d

    Cấu hình PostgreSQL

    Nếu bạn đã có PostgreSQL riêng, hãy tạo database và user cho HyCanvas:

    Chuyển sang user postgres (user mặc định của PostgreSQL) và mở giao diện psql:

    sudo -u postgres psql
    Nếu bạn đã có user khác có quyền tạo database, bạn có thể dùng:

    psql -U your_admin_user -d postgres
    Bước 3: Tạo user (role) mới
    Trong cửa sổ psql, chạy lệnh sau để tạo user hycanvas với mật khẩu:

    — Đăng nhập với user postgres

    CREATE ROLE hycanvas WITH LOGIN PASSWORD ‘mat_khau_manh’;

    ALTER ROLE hycanvas CREATEDB;

    CREATE DATABASE hycanvas OWNER hycanvas;

    Nếu gặp lỗi quyền trên schemapublic khi chạy migration trong sql:

    \c hycanvas

    GRANT ALL ON SCHEMA public TO hycanvas;

    GRANT CREATE, USAGE ON SCHEMA public TO hycanvas;

    Hoặc đơn giản hơn:

    sql

    ALTER DATABASE hycanvas OWNER TO hycanvas;

    Cập nhậtDATABASE_URLtrong.env:

    text

    DATABASE_URL=”postgresql://hycanvas:mat_khau_manh@192.168.1.20:5432/hycanvas?schema=public”

    Chỉnh cấu hình .env

    Với phiên bản binary, file cấu hình mặc định là .env nằm trong cùng thư mục với file hycanvas. Nếu bạn chưa có file này, HyCanvas sẽ tự động tạo sau lần chạy đầu tiên.

    Dưới đây là hướng dẫn chi tiết để sửa cấu hình cho phép truy cập từ IP khác.

    1. Kiểm tra file cấu hình .env
    ls -la | grep .env
    Nếu chưa có, hãy tạo file .env:

    nano .env
    2. Nội dung cần thêm/sửa
    # Quan trọng: Bind vào tất cả địa chỉ IP
    HOST=0.0.0.0

    # Cổng (giữ nguyên hoặc đổi)
    PORT=8005

    # (Tùy chọn) Public URL để sinh link chính xác
    PUBLIC_URL=”//192.168.1.20:8005″ # thay IP thực tế của bạn

    # Các biến khác giữ nguyên
    DATABASE_URL=”postgresql://…”
    JWT_SECRET=”…”
    Lưu ý: Nếu đã có file .env, chỉ cần thêm hoặc sửa 3 dòng đầu.

    3. Khởi động lại dịch vụ để áp dụng
    ./hycanvas service restart
    Sau khi restart, kiểm tra log để xem HyCanvas đã bind đúng chưa:

    ./hycanvas service log
    Tìm dòng tương tự:

    Server is running on //0.0.0.0:8005
    hoặc

    Listening on 0.0.0.0:8005

    File mẫu

    Đây là danh sách các biến môi trường chính trong file .env của HyCanvas, được tổng hợp từ tài liệu chính thức của dự án.

    1. Cấu hình Cơ bản (Bắt buộc)
    Biến môi trường Mô tả
    DATABASE_URL Bắt buộc. Chuỗi kết nối PostgreSQL (ví dụ: postgresql://user:pass@host:5432/db).
    JWT_SECRET Bắt buộc. Dùng để ký token phiên và mã hóa khóa AI. Nên đặt giá trị mạnh trong môi trường production.
    PORT Cổng chạy backend, mặc định là 8005.
    NODE_ENV Môi trường chạy, có thể là development hoặc production.
    2. Cấu hình Lưu trữ (Storage)
    Biến môi trường Mô tả
    STORAGE_DRIVER Loại driver lưu trữ, mặc định là local (ổ cứng). Có thể đặt là s3 để dùng S3.
    LOCAL_STORAGE_PATH Đường dẫn tuyệt đối đến thư mục lưu trữ file khi dùng driver local.
    S3_* Các biến cấu hình cho S3 (endpoint, bucket, keys) khi dùng driver s3.
    3. Cấu hình Nâng cao
    Biến môi trường Mô tả
    ASSET_QUOTA_BYTES Giới hạn dung lượng (bytes) mỗi Workspace, mặc định là 2 GiB. Đây là biến bạn cần thay đổi.
    USER_STORAGE_QUOTA_BYTES Giới hạn dung lượng (bytes) toàn cục cho mỗi người dùng trên tất cả Workspace. Mặc định là 0 (không giới hạn).
    DB_AUTO_MIGRATE Tự động chạy migration database khi khởi động server (true/false).
    FRONTEND_URL Origin được CORS cho phép. Trong môi trường dev thường là //localhost:3000.
    APP_URL URL công khai để tạo link (xác thực email, link chia sẻ).
    AI_SECRET Dùng để mã hóa khóa AI của workspace. Nếu không có, sẽ dùng JWT_SECRET làm fallback.
    OIDC_* Cấu hình cho Single Sign-On (SSO) qua OIDC.
    CAPTCHA_* Cấu hình Captcha cho form đăng nhập (Turnstile/reCAPTCHA).
    Lưu ý quan trọng
    Quy tắc đặt tên: Các biến không phân biệt chữ hoa chữ thường. Bạn nên dùng chữ in hoa và dấu gạch dưới _ để phân tách (ví dụ: DATABASE_URL).

    Kết nối AI vào HyCanvas

    Bạn có thể thực hiện theo 2 cách: cấu hình qua file.envhoặccấu hình trong giao diện.

    Phương pháp cấu hình AI cho toàn bộ server. Mở file .env trong thư mục chứa binary hycanvas:

    nano .env
    Thêm các biến môi trường tương ứng với nhà cung cấp bạn muốn sử dụng:

    OPENAI_API_KEY=”sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
    OPENAI_BASE_URL=”//api.openai.com/v1″ # Tùy chọn, nếu dùng proxy/endpoint khác
    OPENAI_MODELS=”gpt-4o,gpt-4o-mini,gpt-4-turbo” # Các model được phép sử dụng

    ANTHROPIC_API_KEY=”sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
    ANTHROPIC_BASE_URL=”//api.anthropic.com” # Tùy chọn
    ANTHROPIC_MODELS=”claude-3-5-sonnet-20241022,claude-3-opus-20240229″

    DEEPSEEK_API_KEY=”sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
    DEEPSEEK_BASE_URL=”//api.deepseek.com/v1″ # Tùy chọn
    DEEPSEEK_MODELS=”deepseek-chat,deepseek-coder”
    Endpoint tùy chỉnh (ví dụ: local LLM qua Ollama, vLLM)

    CUSTOM_AI_API_KEY=”your-api-key” # Nếu endpoint yêu cầu
    CUSTOM_AI_BASE_URL=”//localhost:11434/v1″ # URL của endpoint OpenAI-compatible
    CUSTOM_AI_MODELS=”llama3.2,phi3″
    Lưu file và khởi động lại dịch vụ để áp dụng thay đổi:

    ./hycanvas service restart

    HyCanvas cho phép bạn cấu hình AI trực tiếp trong giao diện quản trị của từng Workspace, giúp linh hoạt hơn và không cần restart server.

    Mở một design bất kỳ.

    Sử dụng các công cụ AI như Magic Design (tạo trang từ văn bản), Generate Image, Restyle, hoặc trợ lý chat. Trong phần “AI” hoặc “Integrations”, bạn sẽ thấy các trường để nhập:

    API Key của nhà cung cấp (OpenAI, Anthropic, DeepSeek…)

    Base URL (nếu dùng endpoint tùy chỉnh)

    Model list (các model được phép sử dụng)

    Nhập thông tin và lưu lại.

    Lưu ý: Các khóa API được mã hóa và lưu trữ trên server, không bao giờ bị lộ ra phía trình duyệt

    Một số công cụ AI cơ bản như Critica (phê bình thiết kế), Armonizzazione (hài hòa màu sắc), Auto-layout và Auto-animate hoạt động mà không cần API key.

    AI_SECRET: Nếu bạn muốn mã hóa khóa AI của workspace, có thể đặt biến AI_SECRET trong .env. Nếu không, HyCanvas sẽ dùng JWT_SECRET làm fallback.

    Model list: Nếu không chỉ định danh sách model, HyCanvas sẽ sử dụng danh sách mặc định của nhà cung cấp.

    Kết luận

    HyCanvas là một nền tảng thiết kế mạnh mẽ, AI-native và self-hosted, cho phép bạn kiểm soát hoàn toàn dữ liệu và sáng tạo không giới hạn. Với cách cài đặt đơn giản qua binary hoặc Docker, bạn có thể triển khai trên cả Linux và macOS chỉ trong vài phút.

    Tài nguyên hữu ích:

    Nâng cấp

    Các bản phát hành //github.com/hyscaler/HyCanvas/releases

    ./hycanvas service stop
    cp hycanvas hycanvas.bak # rollback insurance
    tar -xzf hycanvas_vX.Y.Z_linux_amd64.tar.gz # replaces ./hycanvas
    ./hycanvas service start # migrations run automatically on boot
    Cơ sở dữ liệu sẽ tự động được cập nhật khi khởi động và việc mở các tệp thiết kế cũ luôn thành công (định dạng tệp được mở sẽ giữ nguyên các bản cập nhật). Để khôi phục lại, hãy dừng chương trình, khôi phục bản sao lưu nhị phân và khởi động lại.

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    Chat with us
    Hello! How can I help you today?