{"id":167,"date":"2025-05-26T22:02:30","date_gmt":"2025-05-26T20:02:30","guid":{"rendered":"https:\/\/netcloud24.com\/pl\/blog\/?p=167"},"modified":"2025-05-26T22:02:41","modified_gmt":"2025-05-26T20:02:41","slug":"wordpress-z-docker-compose-ansible-i-lets-encrypt","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/pl\/blog\/wordpress-z-docker-compose-ansible-i-lets-encrypt\/","title":{"rendered":"WordPress z Docker Compose, Ansible i Let&#8217;s Encrypt"},"content":{"rendered":"<p><code><\/code><\/p>\n<div class=\"promo-box\">\n<h3>Nie chcesz konfigurowa\u0107 samodzielnie?<\/h3>\n<p>Skorzystaj z naszych gotowych rozwi\u0105za\u0144 hostingowych:<\/p>\n<ul>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">VPS Windows<\/a> &#8211; Wydajne \u015brodowisko dla Twoich projekt\u00f3w<\/li>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">Serwer dedykowany Windows<\/a> &#8211; Maksymalna moc obliczeniowa<\/li>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">Serwer VPS<\/a> &#8211; Elastyczne rozwi\u0105zania wirtualne<\/li>\n<\/ul>\n<p>NetCloud24 &#8211; hosting, na kt\u00f3rym mo\u017cesz polega\u0107!<\/p>\n<\/div>\n<h2>Wprowadzenie<\/h2>\n<p>Ten przewodnik poka\u017ce Ci, jak szybko wdro\u017cy\u0107 WordPressa w \u015brodowisku Docker z automatyczn\u0105 konfiguracj\u0105 Ansible i darmowymi certyfikatami SSL od Let&#8217;s Encrypt. Ca\u0142o\u015b\u0107 zajmie mniej ni\u017c 30 minut!<\/p>\n<h2>Wymagania wst\u0119pne<\/h2>\n<ul>\n<li>Serwer z Ubuntu 20.04\/22.04 lub Debian 10\/11<\/li>\n<li>Minimalnie 2GB RAM (4GB zalecane dla \u015brodowisk produkcyjnych)<\/li>\n<li>20GB wolnego miejsca na dysku<\/li>\n<li>Domena wskazuj\u0105ca na IP serwera<\/li>\n<\/ul>\n<div class=\"note\"><strong>Uwaga:<\/strong> Wszystkie komendy nale\u017cy wykonywa\u0107 jako u\u017cytkownik z uprawnieniami sudo.<\/div>\n<h2>Krok 1: Instalacja Dockera i Docker Compose<\/h2>\n<p>Zaczynamy od instalacji wymaganych narz\u0119dzi:<\/p>\n<pre><code class=\"command\"># Aktualizacja systemu\r\nsudo apt update &amp;&amp; sudo apt upgrade -y\r\n\r\n# Instalacja wymaganych pakiet\u00f3w\r\nsudo apt install -y apt-transport-https ca-certificates curl software-properties-common\r\n\r\n# Dodanie oficjalnego repozytorium Dockera\r\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg\r\necho \"deb [arch=amd64 signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\r\n\r\n# Instalacja Dockera i Docker Compose\r\nsudo apt update\r\nsudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin\r\n\r\n# Weryfikacja instalacji\r\ndocker --version\r\ndocker compose version<\/code><\/pre>\n<h2>Krok 2: Przygotowanie pliku docker-compose.yml<\/h2>\n<p>Tworzymy plik konfiguracyjny dla WordPressa:<\/p>\n<pre><code class=\"command\"># Tworzymy katalog projektu\r\nmkdir wordpress &amp;&amp; cd wordpress\r\n\r\n# Tworzymy plik docker-compose.yml\r\nnano docker-compose.yml<\/code><\/pre>\n<p>Wklej nast\u0119puj\u0105c\u0105 konfiguracj\u0119 (zmie\u0144 <code>example.com<\/code> na swoj\u0105 domen\u0119):<\/p>\n<pre><code class=\"filename\"># docker-compose.yml\r\nversion: '3.8'\r\n\r\nservices:\r\n  db:\r\n    image: mariadb:10.6\r\n    volumes:\r\n      - db_data:\/var\/lib\/mysql\r\n    restart: always\r\n    environment:\r\n      MYSQL_ROOT_PASSWORD: twoje_mocne_haslo\r\n      MYSQL_DATABASE: wordpress\r\n      MYSQL_USER: wordpress\r\n      MYSQL_PASSWORD: wordpress\r\n\r\n  wordpress:\r\n    depends_on:\r\n      - db\r\n    image: wordpress:latest\r\n    volumes:\r\n      - wordpress_data:\/var\/www\/html\r\n    ports:\r\n      - \"80:80\"\r\n    restart: always\r\n    environment:\r\n      WORDPRESS_DB_HOST: db\r\n      WORDPRESS_DB_USER: wordpress\r\n      WORDPRESS_DB_PASSWORD: wordpress\r\n      WORDPRESS_DB_NAME: wordpress\r\n\r\n  certbot:\r\n    image: certbot\/certbot\r\n    volumes:\r\n      - wordpress_data:\/var\/www\/html\r\n      - certbot_etc:\/etc\/letsencrypt\r\n    command: certonly --webroot --webroot-path=\/var\/www\/html --email tw\u00f3j@email.com --agree-tos --no-eff-email -d example.com -d www.example.com\r\n\r\nvolumes:\r\n  db_data:\r\n  wordpress_data:\r\n  certbot_etc:<\/code><\/pre>\n<div class=\"promo-box\">\n<h3>Potrzebujesz wydajnego hostingu pod Docker?<\/h3>\n<p>Nasze <a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">serwery VPS<\/a> s\u0105 zoptymalizowane pod konteneryzacj\u0119!<\/p>\n<ul>\n<li>SSD NVMe dla maksymalnej wydajno\u015bci<\/li>\n<li>Gotowe obrazy z Docker i Docker Compose<\/li>\n<li>24\/7 wsparcie techniczne<\/li>\n<\/ul>\n<\/div>\n<h2>Krok 3: Uruchomienie WordPressa<\/h2>\n<p>Wystarczy jedna komenda:<\/p>\n<pre><code class=\"command\">docker compose up -d<\/code><\/pre>\n<p>Po kilku minutach WordPress b\u0119dzie dost\u0119pny pod adresem http:\/\/twoja-domena.com<\/p>\n<h2>Krok 4: Automatyzacja z Ansible<\/h2>\n<p>Stw\u00f3rzmy playbook Ansible do zarz\u0105dzania konfiguracj\u0105:<\/p>\n<pre><code class=\"command\"># Instalacja Ansible\r\nsudo apt install -y ansible\r\n\r\n# Tworzymy plik playbook\r\nnano wordpress.yml<\/code><\/pre>\n<p>Dodaj nast\u0119puj\u0105c\u0105 konfiguracj\u0119:<\/p>\n<pre><code class=\"filename\"># wordpress.yml\r\n---\r\n- hosts: all\r\n  become: yes\r\n  tasks:\r\n    - name: Install required packages\r\n      apt:\r\n        name: \"{{ item }}\"\r\n        state: present\r\n        update_cache: yes\r\n      loop:\r\n        - docker-ce\r\n        - docker-ce-cli\r\n        - containerd.io\r\n        - docker-compose-plugin\r\n\r\n    - name: Ensure Docker is running and enabled\r\n      service:\r\n        name: docker\r\n        state: started\r\n        enabled: yes\r\n\r\n    - name: Create WordPress directory\r\n      file:\r\n        path: \/opt\/wordpress\r\n        state: directory\r\n        mode: '0755'\r\n\r\n    - name: Copy docker-compose.yml\r\n      copy:\r\n        src: files\/docker-compose.yml\r\n        dest: \/opt\/wordpress\/docker-compose.yml\r\n        mode: '0644'\r\n\r\n    - name: Start WordPress containers\r\n      community.docker.docker_compose:\r\n        project_src: \/opt\/wordpress\r\n        state: present<\/code><\/pre>\n<h2>Krok 5: Konfiguracja HTTPS z Let&#8217;s Encrypt<\/h2>\n<p>Zaktualizuj plik docker-compose.yml:<\/p>\n<pre><code class=\"command\">nano docker-compose.yml<\/code><\/pre>\n<p>Dodaj us\u0142ug\u0119 reverse proxy (Nginx) przed WordPressem:<\/p>\n<pre><code class=\"filename\"># Fragment do dodania do docker-compose.yml\r\n  nginx:\r\n    image: nginx:latest\r\n    depends_on:\r\n      - wordpress\r\n      - certbot\r\n    ports:\r\n      - \"80:80\"\r\n      - \"443:443\"\r\n    volumes:\r\n      - wordpress_data:\/var\/www\/html\r\n      - .\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf\r\n      - certbot_etc:\/etc\/letsencrypt\r\n    restart: always<\/code><\/pre>\n<div class=\"promo-box\">\n<h3>Wolisz gotowe rozwi\u0105zanie?<\/h3>\n<p>Nasze <a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">serwery dedykowane Windows<\/a> oferuj\u0105:<\/p>\n<ul>\n<li>Automatyczne wdro\u017cenie WordPressa<\/li>\n<li>Zintegrowane certyfikaty SSL<\/li>\n<li>Codzienne kopie zapasowe<\/li>\n<\/ul>\n<\/div>\n<h2>Krok 6: Finalna konfiguracja<\/h2>\n<p>Uruchom ponownie kontenery:<\/p>\n<pre><code class=\"command\">docker compose down\r\ndocker compose up -d<\/code><\/pre>\n<p>Twoja strona WordPress jest teraz dost\u0119pna pod bezpiecznym protoko\u0142em HTTPS!<\/p>\n<h2>Podsumowanie<\/h2>\n<p>W tym przewodniku pokazali\u015bmy jak:<\/p>\n<ul>\n<li>Zainstalowa\u0107 WordPressa w Dockerze<\/li>\n<li>Zautomatyzowa\u0107 proces za pomoc\u0105 Ansible<\/li>\n<li>Doda\u0107 darmowe certyfikaty SSL<\/li>\n<li>Skonfigurowa\u0107 Nginx jako reverse proxy<\/li>\n<\/ul>\n<div class=\"note\"><strong>Porada:<\/strong> Regularnie aktualizuj kontenery Dockera komend\u0105 <code>docker compose pull &amp;&amp; docker compose up -d<\/code><\/div>\n<div class=\"promo-box\">\n<h3>Gotowe na w\u0142asny WordPress?<\/h3>\n<p>Wybierz idealne rozwi\u0105zanie hostingowe:<\/p>\n<ul>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">VPS Windows<\/a> &#8211; dla ma\u0142ych i \u015brednich projekt\u00f3w<\/li>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">Serwer dedykowany Windows<\/a> &#8211; dla wymagaj\u0105cych aplikacji<\/li>\n<li><a href=\"https:\/\/netcloud24.com\/\" target=\"_blank\" rel=\"noopener\">Serwer VPS<\/a> &#8211; elastyczne rozwi\u0105zanie wirtualne<\/li>\n<\/ul>\n<p>Odwied\u017a netcloud24.com i wybierz idealny hosting dla siebie!<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nie chcesz konfigurowa\u0107 samodzielnie? Skorzystaj z naszych gotowych rozwi\u0105za\u0144 hostingowych: VPS Windows &#8211; Wydajne \u015brodowisko dla Twoich projekt\u00f3w Serwer dedykowany Windows &#8211; Maksymalna moc obliczeniowa\u2026<\/p>\n","protected":false},"author":1,"featured_media":168,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":1,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":169,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions\/169"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/media\/168"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}