🤖 AI-Optimized View

نصب Gradio در اوبونتو

نحوه نصب Gradio در اوبونتو بیاموزید که چگونه Gradio را در اوبونتو نصب کنید، یک رابط وب ایجاد کنید و با استفاده از یک نام دامنه، آن را به صورت ایمن در معرض…

✍️ نگار نوین📅 2025-10-27🔄 2025-10-27🌐 نگارنوین

📌 خلاصه (TL;DR)

نحوه نصب Gradio در اوبونتو بیاموزید که چگونه Gradio را در اوبونتو نصب کنید، یک رابط وب ایجاد کنید و با استفاده از یک نام دامنه، آن را به صورت ایمن در معرض نمایش قرار دهید. مقدمه Gradio یک کتابخانه پایتون است که به شما امکان می‌دهد با استفاده از هر مدل یادگیری ماشینی (ML) مورد…

📄 محتوای کامل



نحوه نصب Gradio در اوبونتو
بیاموزید که چگونه Gradio را در اوبونتو نصب کنید، یک رابط وب ایجاد کنید و با استفاده از یک نام دامنه، آن را به صورت ایمن در معرض نمایش قرار دهید.




مقدمه


Gradio یک کتابخانه پایتون است که به شما امکان می‌دهد با استفاده از هر مدل یادگیری ماشینی (ML) مورد نظر خود، یک رابط وب ایجاد کنید. پس از یکپارچه‌سازی، مدل مستقیماً به عنوان یک برنامه وب مستقر می‌شود تا نیازهای شما را برآورده کند و برنامه را بسته به نیازهای کاربر شما مقیاس‌بندی کند. این مقاله نحوه استقرار Gradio روی سرور اوبونتو ۲۲.۰۴ و افشای ایمن برنامه برای دسترسی عمومی با استفاده از نام دامنه را توضیح می‌دهد.


الزامات


قبل از شروع :



  • یک سرور جدید Ubuntu A100 Cloud GPU با حداقل ۱/۷ GPU و ۱۰ گیگابایت VRAM راه‌اندازی کنید.

  • یک رکورد دامنه A تنظیم کنید که به آدرس IP سرور اشاره کند

  • با استفاده از SSH به عنوان یک کاربر غیر ریشه با امتیازات sudo به سرور دسترسی پیدا کنید

  • سرور را به‌ روزرسانی کنید

  • نصب Nginx


سرور را تنظیم کنید



  1. بست ه‌های وابستگی مدل مورد نیاز را نصب کنید.

    consoleCopy


    $ pip3 install realesrgan gfpgan basicsr gradio




    در زیر کاری که هر یک از بسته‌های فوق انجام می‌دهند، آمده است:



    • realesrgan: فرآیند بازیابی پس‌زمینه مدل را مدیریت می‌کند.

    • gfpgan: فرآیندهای ترمیم چهره را انجام می‌دهد.

    • basicsr:  RRDBNET را که یک معماری شبکه عصبی عمیق است و در الگوریتم‌های با وضوح بالا استفاده می‌شود، وارد می‌کند و توسط مدل GFPGAN مورد استفاده قرار می‌گیرد.

    • gradio: رابط وب مدل را ایجاد می‌کند.



  2. پیاده‌سازی مدل در این مقاله از کتابخانه  pandas استفاده می‌کند که به  jinja2نسخه  3.1.2 یا بالاتر نیاز دارد. نسخه نصب شده را بررسی کنید.

    consoleCopy


    $ pip show jinja2




    خروجی:


    Name: Jinja2
    Version: 3.0.3
    Summary: A very fast and expressive template engine.

    اگر نسخه موجود پایین‌تر از  3.1است، بسته  jinja2 را ارتقا دهید.


    $ pip install --upgrade jinja2

  3. یک دایرکتوری پروژه جدید به نام  gradio-webapp  در مسیری در کل سیستم مانند  /opt/ ایجاد کنید تا فایل‌های برنامه در آن ذخیره شوند.

    consoleCopy


    $ sudo mkdir -p /opt/gradio-webapp/





  4. مجوزهای مالکیت گروه کاربری خود را به دایرکتوری اعطا کنید.

    consoleCopy


    $ sudo chown -R :$(id -gn) /opt/gradio-webapp/





  5. مجوزهای دایرکتوری را روی ۷۷۵ تنظیم کنید تا کاربر بتواند فایل‌ها را در دایرکتوری بنویسد و اجرا کند.

    consoleCopy


    $ sudo chmod -R 775 /opt/gradio-webapp/






یک برنامه وب Gradio جدید ایجاد کنید


یک برنامه وب Gradio جدید ایجاد کنید که از یک مدل یادگیری ماشین متن‌باز مانند GFPGAN که در این بخش استفاده می‌شود، استفاده کند. این مدل به شما امکان می‌دهد با آپلود یک تصویر منبع که با دو نسخه خروجی بهبود یافته است، تصاویر را بازیابی و بهبود دهید. مراحل زیر را برای ایجاد برنامه وب Gradio که توسط GFPGAN پشتیبانی می‌شود، دنبال کنید تا روی پورت سرور داخلی ۸۰۸۰ نمایش داده شود.



  1. به دایرکتوری پروژه خود بروید.

    consoleCopy


    $ cd /opt/gradio-webapp/





  2. با استفاده از یک ویرایشگر متن مانند  nano، یک فایل برنامه پایتون جدید ایجاد کنید.

    consoleCopy


    $ nano app.py





  3. کد زیر را به فایل اضافه کنید.

    pythonCopy


    import gradio as gr
    from gfpgan import GFPGANer
    from basicsr.archs.rrdbnet_arch import RRDBNet
    from realesrgan import RealESRGANer
    import numpy as np
    import cv2
    import requests
    def enhance_image(input_image):
    arch = 'clean'
    model_name = 'GFPGANv1.4'
    gfpgan_checkpoint = 'https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth'
    realersgan_checkpoint = 'https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth'

    rrdbnet = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32, scale=2)

    bg_upsampler = RealESRGANer(
    scale=2,
    model_path=realersgan_checkpoint,
    model=rrdbnet,
    tile=400,
    tile_pad=10,
    pre_pad=0,
    half=True
    )

    restorer = GFPGANer(
    model_path=gfpgan_checkpoint,
    upscale=2,
    arch=arch,
    channel_multiplier=2,
    bg_upsampler=bg_upsampler
    )

    input_image = input_image.astype(np.uint8)
    cropped_faces, restored_faces, restored_img = restorer.enhance(input_image)

    return restored_faces[0], restored_img

    interface = gr.Interface(
    fn=enhance_image,
    inputs=gr.Image(),
    outputs=[gr.Image(), gr.Image()],
    live=True,
    title="Face Enhancement with GFPGAN",
    description="Upload an image of a face and see it enhanced using GFPGAN. Two outputs will be displayed: restored_faces and restored_img."
    )

    interface.launch(server_name="0.0.0.0", server_port=8080)




    فایل را ذخیره کنید و ببندید.


    در زیر نحوه‌ی عملکرد توابع برنامه‌ی فوق آمده است:



    • enhance_image(): نقاط بررسی مدل و اطلاعات معماری را به همراه پارامترهای مدل بهبود چهره ذخیره می‌کند. مدل درون این پارامتر تعریف می‌شود زیرا گرادیو به یک تابع تعریف‌شده برای علامت‌گذاری آنچه که باید در رابط اجرا کند، نیاز دارد.

    • rrdbnet: پارامترهای وضوح فوق‌العاده تصویر را تعریف می‌کند.

    • bg_upsampler: پارامترهای بهبود پس‌زمینه را تعریف می‌کند.

    • restorer: پارامترهای بازسازی چهره را تعریف می‌کند.

    • interface: تعریف می‌کند که رابط کاربری چگونه باید به نظر برسد.

    • interface.launch(): دستور راه‌اندازی رابط کاربری برای ایجاد یک برنامه وب را مشخص می‌کند.



  4. برنامه را اجرا کنید تا مطمئن شوید که مدل به درستی شروع به کار می‌کند.

    consoleCopy


    $ python3 app.py




    در صورت موفقیت، خروجی شما باید مانند تصویر زیر باشد:


    Running on local URL: http://0.0.0.0:8080

    برای ایجاد یک لینک عمومی، در تابع  launch() مقدار  share=True  را قرار دهید.


  5. برای متوقف کردن فرآیند درخواست،  Control + C  را فشار دهید.


برنامه وب Gradio را به عنوان یک سرویس سیستمی تنظیم کنید


برای شروع برنامه وب Gradio به عنوان یک سرویس سیستمی و فعال کردن عملیات  start, stop, status برای تأیید فرآیندهای برنامه، یک سرویس Systemd جدید راه‌اندازی کنید. مراحل زیر را برای ایجاد یک سرویس سیستمی جدید و آزمایش فرآیندهای برنامه وب Gradio دنبال کنید.



  1. یک فایل سرویس Systemd جدید ایجاد کنید.

    consoleCopy


    $ sudo nano /etc/systemd/system/my_gradio_app.service





  2. محتویات زیر را به فایل اضافه کنید. برای اجرای سرویس،  example-user را با حساب کاربری واقعی خود جایگزین کنید.

    iniCopy


    [Unit]
    Description=My Gradio Web Application

    [Service]
    ExecStart=/usr/bin/python3 /opt/gradio-webapp/app.py
    WorkingDirectory=/opt/gradio-webapp/
    Restart=always
    User=example-user
    Environment=PATH=/usr/bin:/usr/local/bin
    Environment=PYTHONUNBUFFERED=1

    [Install]
    WantedBy=multi-user.target




    فایل را ذخیره کنید و ببندید.


    در زیر آنچه که اعلان‌های Systemd فوق نشان می‌دهند، آمده است:



    • Description: خلاصه‌ای از عملکرد سرویس

    • ExecStart: نحوه اجرای سرویس را مشخص می‌کند. در فایل فوق،  Python3 برای شروع  app.py  در دایرکتوری Gradio شما اجرا می‌شود.

    • WorkingDirectory: دایرکتوری فعالی که فایل پایتون شما در آن قرار دارد.

    • Restart: رفتار راه‌اندازی مجدد سرویس را تعریف می‌کند. وقتی روی  always تنظیم شود، در صورت بروز خطا، سرویس به‌طور خودکار راه‌اندازی مجدد می‌شود.

    • User: کاربری را که سرویس را اجرا می‌کند، مشخص می‌کند.



  3. برای ذخیره تغییرات، سرویس Systemd را مجدداً راه‌اندازی کنید.

    consoleCopy


    $ sudo systemctl daemon-reload





  4. سرویس را طوری فعال کنید که همزمان با بوت شدن سیستم شروع به کار کند.

    consoleCopy


    $ sudo systemctl enable my_gradio_app





  5. سرویس Gradio را شروع کنید.

    consoleCopy


    $ sudo systemctl start my_gradio_app





  6. تأیید کنید که سرویس به درستی و بدون هیچ خطایی اجرا می‌شود.

    consoleCopy


    $ sudo systemctl status my_gradio_app




    خروجی :


    ● my_gradio_app.service - My Gradio App
    Loaded: loaded (/etc/systemd/system/my_gradio_app.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2023-10-13 13:50:04 UTC; 11s ago
    Main PID: 3287 (python3)
    Tasks: 4 (limit: 17871)
    Memory: 329.6M
    CGroup: /system.slice/my_gradio_app.service
    └─3287 /usr/bin/python3 /root/app.py

    Oct 13 13:50:04 negarnovin systemd[1]: Started My Gradio App.
    Oct 13 13:50:08 negarnovin python3[3287]: /usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_tensor.py:5: UserWarning: The torchvision.transforms.functional_tensor module>
    Oct 13 13:50:08 negarnovin python3[3287]: warnings.warn()
    Oct 13 13:50:08 negarnovin python3[3287]: Running on local URL: http://0.0.0.0:8080
    Oct 13 13:50:08 negarnovin python3[3287]: To create a public link, set `share=True` in `launch()`.


پیکربندی Nginx به عنوان یک پروکسی معکوس برای نمایش برنامه وب Gradio


برای دسترسی ایمن به پورت  8080برنامه وب Gradio در اینترنت، Nginx را به عنوان یک پروکسی معکوس پیکربندی کنید تا درخواست‌های اتصال از پورت  80HTTP را ارسال و مدیریت کند. برای مدیریت ایمن ترافیک ورودی، بعداً Nginx را طوری پیکربندی کنید که درخواست‌های HTTPS را با یک گواهی SSL معتبر مدیریت کند. در این بخش، پیکربندی‌های لازم Nginx را ایجاد کرده و دسترسی به رابط وب Gradio را آزمایش کنید.



  1. یک فایل پیکربندی میزبان مجازی Nginx جدید در دایرکتوری  sites-available  ایجاد کنید.

    consoleCopy


    $ sudo nano /etc/nginx/sites-available/gradio.conf





  2. محتویات زیر را به فایل اضافه کنید.

    nginxCopy


    server {
    listen 80;
    listen [::]:80;
    server_name gradio.example.com;

    location / {
    proxy_pass http://127.0.0.1:8080/;
    }
    }




    فایل را ذخیره کنید و ببندید.


  3. برای فعال کردن فایل پیکربندی، آن را به دایرکتوری  sites-enabled  لینک کنید.

    consoleCopy


    $ sudo ln -s /etc/nginx/sites-available/gradio.conf /etc/nginx/sites-enabled/





  4. پیکربندی Nginx را برای خطاها آزمایش کنید.

    consoleCopy


    $ sudo nginx -t




    خروجی :


    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

  5. برای اعمال تغییرات، Nginx را مجدداً راه‌ اندازی کنید.

    consoleCopy


    $ sudo systemctl restart nginx






امنیت



  1. تأیید کنید که فایروال پیش‌فرض UFW روی سرور اوبونتو شما فعال است.

    consoleCopy


    $ sudo ufw status




    خروجی :


    Status: active

    To Action From
    -- ------ ----
    22/tcp ALLOW Anywhere

  2. برای پذیرش اتصالات HTTP ورودی، پورت HTTP  80 را از طریق فایروال مجاز کنید.

    consoleCopy


    $ sudo ufw allow 80/tcp





  3. پورت HTTPS  443را مجاز کنید..

    consoleCopy


    $ sudo ufw allow 443/tcp





  4. برای ذخیره تغییرات، قوانین فایروال را مجدداً بارگذاری کنید.

    consoleCopy


    $ sudo ufw reload






ایمن‌سازی اپلیکیشن وب Gradio با گواهینامه‌های SSL معتبر


سرور مجازی برج میلاد


برای رمزگذاری ایمن ترافیک سرور خود، با استفاده از Certbot Let’s Encrypt Client، گواهینامه‌های SSL معتبر ایجاد کنید. پس از ایجاد، نام دامنه برنامه وب Gradio شما با ترافیک HTTPS و یک گواهینامه SSL معتبر محافظت می‌شود. مراحل زیر را برای نصب کلاینت Certbot و تولید گواهینامه‌های SSL با استفاده از پیکربندی Nginx خود دنبال کنید.



  1. Certbot را نصب کنید.

    consoleCopy


    $ sudo apt install -y certbot python3-certbot-nginx





  2. با استفاده از پیکربندی‌های Nginx خود، یک گواهی SSL جدید ایجاد کنید.
    $ sudo certbot --nginx -d gradio.example.com -m admin@example.com --agree-tos

  3. تأیید کنید که گواهی پس از انقضا به طور خودکار تمدید می‌شود.
    $ sudo certbot renew --dry-run

    اگر دستور بالا خطایی ایجاد نکرد، Certbot به طور خودکار گواهی SSL شما را هر ۹۰ روز تمدید می‌کند.



تست



  1. با استفاده از یک مرورگر وب مانند کروم، به نام دامنه اپلیکیشن وب Gradio خود مراجعه کنید.
    https://gradio.example.com

    نصب Gradio در اوبونتونصب Gradio در اوبونتو



  2. یک تصویر نمونه را در بخش i input_image  بارگذاری کنید و تأیید کنید که برنامه از منابع NEGARNOVIN GPU Server برای پردازش خروجی تصویر بهبود یافته استفاده می‌ کند.


نتیجه گیری


شما یک برنامه وب Gradio را روی سرور اوبونتو خود مستقر کرده‌اید و آن را با استفاده از نام دامنه خود برای دسترسی عمومی ایمن کرده‌اید. می‌توانید فرآیندهای برنامه را با قابلیت‌های بیشتر برای مطابقت با نیازهای کاربر خود تغییر دهید. برای اطلاعات بیشتر، به مستندات رابط وب Gradio مراجعه کنید.




🖼️ تصاویر صفحه (1)

نصب Gradio در اوبونتو
نصب Gradio در اوبونتو

🗂️ ساختار داده‌ها (Schema.org)

📰 Article
عنوان: نصب Gradio در اوبونتو
توضیحات: نحوه نصب Gradio در اوبونتو بیاموزید که چگونه Gradio را در اوبونتو نصب کنید، یک رابط وب ایجاد کنید و با استفاده از یک نام دامنه، آن را به صورت ایمن در
نویسنده: نگار نوین
انتشار: 2025-10-27
به‌روزرسانی: 2025-10-27
URL: https://negarnovin.com/docs/how-to-deploy-gradio-on-ubuntu/
🏢 Organization
نام: نگارنوین
URL: https://negarnovin.com