{
  "$type": "com.whtwnd.blog.entry",
  "theme": "github-light",
  "title": "Subindo um NextCloud via Docker",
  "content": "Eu anoto muitas coisas num servidor privado do Discord. Mas às vezes prefiro anotar coisas importantes na forma de blog, até para que talvez possa ajudar outros no futuro. Esta anotação é para mostrar a forma mais fácil que encontrei de colocar um Nextcloud pra rodar num servidor VPS.\n\nPrimeiro, instale o Docker:\n\n```\nsudo apt update && sudo apt install docker.io -y\nsudo apt install docker-compose -y\n```\n\nCrie um diretório:\n\n`mkdir -p ~/nextcloud && cd ~/nextcloud`\n\nCrie um arquivo docker-compose.yml:\n\n`nano docker-compose.yml`\n\nAdicione o seguinte texto para rodar Nextcloud com um banco de dados MariaDB (defina nele as senhas):\n\n```\nversion: '3.8'\nservices:\n  db:\n    image: mariadb\n    container_name: nextcloud_db\n    restart: always\n    volumes:\n      - db_data:/var/lib/mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: root_password\n      MYSQL_DATABASE: nextcloud\n      MYSQL_USER: nextcloud_user\n      MYSQL_PASSWORD: nextcloud_password\n\n  nextcloud:\n    image: nextcloud\n    container_name: nextcloud_app\n    restart: always\n    ports:\n      - \"8080:80\"\n    volumes:\n      - nextcloud_data:/var/www/html\n    depends_on:\n      - db\n    environment:\n      MYSQL_DATABASE: nextcloud\n      MYSQL_USER: nextcloud_user\n      MYSQL_PASSWORD: nextcloud_password\n      MYSQL_HOST: db\n\nvolumes:\n  db_data:\n  nextcloud_data:\n```\n\nSalve e use o comando para executá-lo:\n\n`docker-compose up -d`\n\nO Nextcloud vai abrir em http://SEU_IP:8080 . O Nextcloud estará acessível na porta 8080 do seu VPS, enquanto internamente no contêiner ele usa a porta 80. É possível instalar outros apps com portas diferentes, como 9090:80. Por exemplo, pra rodar um Wordpress em http://SEU_IP:9090, troque esta parte:\n\n```\nservices:\n  wordpress:\n    image: wordpress\n    container_name: wordpress_app\n    restart: always\n    ports:\n      - \"9090:80\"\n\n```\n\n\n",
  "createdAt": "2025-05-16T14:48:32.121Z",
  "visibility": "public"
}