Como fazer um servidor Nextcloud (Dropbox like) com o Ubuntu Server - Tutorial

Estou com o mesmo problema… Já pesquisei bastante a respeito e nada! :sweat:
Os dois instalam de boa, e conforme os seus vídeos, @Dio, tudo ok. Mas como @Beep_Fibra, também não consigo enviar um arquivo pelo Nextcloud e mover para o Emby. Se conseguisse mover ao menos de forma manual já ajudaria bastante.

Complementando…
Ao acessar o servidor via SSH, e somente com acesso root, consigo pesquisar pelo nome do arquivo que enviei pelo Nextcloud e tenho o seguinte retorno:

root in / 
➜  var/snap/nextcloud/common/nextcloud/data/[MEU_USUARIO_NEXTCLOUD]/files/[NOME_DO_ARQUIVO].mp4
zsh: permission denied: var/snap/nextcloud/common/nextcloud/data/[MEU_USUARIO_NEXTCLOUD]/files/[NOME_DO_ARQUIVO].mp4

Esta parte acima é o resultado da pesquisa e ao dar enter na busca.
Como root, até consigo entrar no diretório e mover o arquivo para a pasta do emby na home do meu usuário. Mas quando tento reproduzir recebo a seguinte mensagem:

Já tentei dar permissão de acesso ao diretório /home/emby e mesmo assim o problema persiste.
Postei tudo que já tentei até aqui, mas acredito que tem muita coisa errada e espero que alguém possa ajudar com a solução. Continuarei pesquisando mais em busca da solução, caso encotre, volto aqui para compartilhar.

Ainda aguardando Este tipo de solução também. Mas enquanto não encontro, consegui facilitar um pouco as coisas aqui. Entre muitas tentativas e bastante pesquisa, o que consegui fazer foi o que se segue abaixo.

Obs.: Não sou nenhum expert, muito pelo contrário, acabei de entrar no mundo linux e por isso sei que provavelmente tem bastante coisa errada ou que pode ser melhorada. Por isso, peço paciência e colaboração da galera mais experiente. :laughing:

NEXTCLOUD:

  1. Criar usuário para fazer uploads das mídias
  2. Criar pastas equivalentes as que serão criadas para as bibliotecas do Emby (Filmes, Series, Animes…)

VIA TERMINAL:

  1. Criar a pasta “emby” na Home do usuário e dentro dela criar as pastas que serão usadas pelo Emby para organizar as bibliotecas (mesma estrutura vista antes).
mkdir emby
cd emby
mkdir filmes
...

Aqui, só consegui acessar as pastas do Nextcloud e mover os itens “upados” com acesso root. Então:

  1. hora de logar como root e acessar a Home dele
sudo su
cd
  1. Editar o .bashrc ou .zshrc (de acordo com o Shell que estiver utilizando) e definir as Variáveis e Aliases que facilitarão as tarefas de navegar entre as pastas e mover os arquivos “upados” dos diretórios do Nextcloud para os diretórios das bibliotecas do Emby. Segue o exemplo de edição que fiz aqui:

Importante: Tenha muito cuidado com o que você vai fazer aqui! Recomendo fazer as edições no final do arquivo para evitar de “quebrar” algum comando ou função já existente no arquivo.

3.1. Declara as Variáveis como Globais:

###############::VARIÁVEIS::################
export ANC="/var/snap/nextcloud/common/nextcloud/data/emby/files/Animes"
export FNC="/var/snap/nextcloud/common/nextcloud/data/emby/files/Filmes" 
export SNC="/var/snap/nextcloud/common/nextcloud/data/emby/files/Series"
export AEMBY="/home/[USUÁRIO_PADRÃO]/emby/animes"
export FEMBY="/home/[USUÁRIO_PADRÃO]/emby/filmes"
export SEMBY="/home/[USUÁRIO_PADRÃO]/emby/series"

3.2. Declara os Aliases para acessar o caminho armazenado em cada Variável declarada anteriormente, já com a opção de exibir detalhadamente o que tem dentro de cada diretório. Caso não queira a listagem automática do conteúdo da pasta ou uma listagem diferente é só remover ou modificar o " && ls -la".

################::ALIASES::#################
alias anc="cd $ANC && ls -la"
alias fnc="cd $FNC && ls -la"
alias snc="cd $SNC && ls -la"
alias aemby="cd $AEMBY && ls -la"
alias femby="cd $FEMBY && ls -la"
alias semby="cd $SEMBY && ls -la"

Ao menos as listagens consigo fazer com o usuário padrão utilizando o sudo, então também fiz a edição do .zshrc na home deste usuário. (Opcional)
Após as modificações, recomendo que reinicie seu servidor.

Agora, suponhamos que você fez o upload do filme “Lucy.mkv” para a pasta “Filmes” no Nextcloud e quer movê-lo para a pasta da biblioteca “Filmes” do Emby que fica na home do usuário padrão.
Ao invés de digitar:

mv /var/snap/nextcloud/common/nextcloud/data/emby/files/Filmes/Lucy.mkv /home/[USUÁRIO_PADRÃO]/emby/filmes

Basta digitar:

mv $FNC/Lucy.mkv $FEMBY

Você ainda poderia acessar antes a pasta “Filmes” do Nextcloud e mover diretamente da origem para o destino com os comandos:

fnc
mv Lucy.mkv $FEMBY

Dica: se você, assim como eu, está começando agora no linux e ainda não sabe que é possível mover o arquivo já renomeando, caso necessário, use o comando:

mv Lucy.mkv '$FEMBY/Filme/Lucy.mkv'

Caso queira conferir se realmente moveu você pode listar o conteúdo da pasta “Filmes” do Nextcloud, caso esteja nela.

ls -la

E depois navegar para a pasta da biblioteca “Filmes” do Emby (O conteúdo já será listado se tiver deixado a opção de listar no alias).

femby

Para poder modificar o conteúdo movido sem precisar estar como root, uso o comando abaixo para conceder acesso total ao que acabei de mover (considerando que serão vários arquivos e ainda que por ser um servidor local, onde somente eu terei acesso a ele aqui em casa não deve haver problema):

chmod -R 777 *

Por fim, um provável problema de cach no Nextcloud:
Como os arquivos estão sendo movidos de forma brusca dos diretórios do Nextcloud, ele continua listando os arquivos mesmo que estes não estejam mais lá ainda que recarregue a página com o “Ctrl+F5”. Aqui eu simplesmente seleciono eles e excluo. Vai exibir um erro, depois recarrego com o “Ctrl+F5” e agora sim eles sumiram de lá.
Se alguém encontrar como resolver isso, favor compartilhe conosco!

Com certeza tem muita coisa errada aqui. :laughing: :laughing: :laughing: :laughing:
Peço paciência aos mais experientes que vierem a compartilhar suas opiniões e sua colaboração para corrigir e melhorar este procedimento.

Agradeço e forte abraço a todos! :v:t2:

1 curtida

Meus problemas com o nextclound começaram quando tentei fazer um acesso externo, utilizando o localtunnel, porque ele exige que vc configure o Trust Domain, estou a uma semana tentando fazer ele permitir o acesso pelo meu pc no trabalho, já coloquei o IP, tentei forçar a porta, tentei um array do tipo 192.168.., tentei colocar o domínio do próprio servidor, mais nada funcionou, acabei desistindo.

Revivendo este tópico com uma pergunta:

É possível instalar o Nextcloud em dual-boot com Windows 11, seja no Ubuntu Server ou numa distro dita “normal” como o Ubuntu ou Kubuntu? Por enquanto é o único dispositivo que tenho que poderia ter o Nextcloud, e a ideia seria apenas iniciar o servidor quando fosse necessário.

Obrigado pelas respostas :slight_smile:

1 curtida

Fiz testes somente no Ubuntu Server, mas creio que você conseguirá em qualquer distro e até mesmo no Windows via docker, por exemplo. Pois foi este método que usei no meu Ubuntu Server.

1 curtida

Como é que posso usar o docker no kubuntu para ter o Nextcloud a funcionar?

1 curtida

Docker

Você pode seguir o guia de instalação do próprio site. Ou se preferir dar o pulo do gato, pode usar o método que utilizei.

Adicionando repositório:

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update

Verificar se será instalado do repositório do Docker e executar a instalação:

apt-cache policy docker-ce
sudo apt install docker-ce -y

Adicionar usuário ao grupo docker e habilitar inicialização automática do serviço:

sudo usermod -aG docker ${USER}
sudo systemctl enable --now docker

Instalando docker-compose:

curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Reinicie seu PC

Verificando inicialização automática do sistema, versão do docker e do docker-compose e se seu usuário está no grupo docker:

systemctl status docker
docker -v
docker-compose --version
id -nG

Testando o docker:

docker run hello-world

Nextcloud

Na página do GitHub tem mais detalhes, caso precise.

git clone https://github.com/ONLYOFFICE/docker-onlyoffice-nextcloud [/DIRETÓRIO/RAIZ/PARA/RODAR/NEXTCLOUD]
cd [/DIRETÓRIO/RAIZ/PARA/RODAR/NEXTCLOUD]
  1. Use seu editor para abrir o arquivo “docker-compose.yml” e modificar o que precisar. Como porta, volumes e etc.

  2. Libere a porta que deseja usar com o NextCloud em seu Firewall, se necessário.

  3. Execute:

docker-compose up -d

Por fim, acessar IP:PORTA no navegador e realizar configuração inicial.

1 curtida

Quando chego a esta parte aparece:

chmx: comando não encontrado

1 curtida

Perdão amigo…
Não tinha me atentado que usei o aliás que tinha configurado em minha máquina! :grin:

Use o comando sudo chmod +x ao invés do chmx que tinha sugerido. Inclusive, irei corrigir na resposta acima.

1 curtida

Não abre…

Tente docker ps para listar os containers que estão em execução. E, caso não apareça nenhum resultado, tente docker ps -a para listar todos e verificar se os containers foram criados mas, por algum motivo, tenham sido iniciados mas foram parados.
Verifique também se seu firewall está liberando a porta que foi configurada no docker-compose.yml.
tente também usar o http://localhost:[PORTA].

1 curtida

Acabei de fazer um teste aqui e tá funcionando de boa. Usei http://localhost.

1 curtida

Funcionou, muito obrigado! :slight_smile:

1 curtida

Agora, como é que posso abrir a porta na firewall? E é possível mudar a localização dos ficheiros do nextcloud? Atualmente está numa partição de 50GB mas queria que estivesse na de 100GB (onde a /home está). Obrigado pela ajuda!

1 curtida

Que bom que deu certo… Fico feliz em ter ajudado!

A questão do firewall seria somente se necessário. Geralmente para acesso de outra máquina da rede.
Se o seu for o UFW, por exemplo, você pode usar sudo ufw status numbered para ver se está ativado ou não. E caso esteja, ver em lista ordenada as portas liberadas.
Caso a porta do contêiner não esteja e você queira liberá-la, use sudo ufw allow [PORTA].

No caso de outro firewall, a ideia é basicamente a mesma, só deve mudar um pouco a sintaxe.

Isso pode ser feito por meio do compartilhamento de volumes no seu docker-compose.yml.
Vou ficar te devendo por enquanto… Mas assim que tiver um tempinho, pesquiso (pois não lembro agora de cabeça) qual o diretório dos dados dentro do container para ser compartilhado.
Já faz um tempinho que estou sem mexer com o docker, mas tente ver se encontra algo relacionado a isso. Você dá o retorno aqui, e provavelmente à noite terei mais tempo pra procurar, caso você não tenha conseguido solucionar até lá.
Só atente-se que dependendo do que precise fazer, talvez seja necessário remover o container e subir um novo. Portanto, evite colocar dados até que esteja definitivamente como você deseja.

1 curtida

Bem, eu abri a porta 80 quer no Kubuntu (sistema “host”), quer no Windows em outro computador. Só que ao fazer IP:80 no Windows não funciona… Será que estou a fazer alguma coisa mal?

Obrigado por toda a ajuda :slight_smile:

1 curtida

As suas duas máquinas precisam estar na mesma rede.

Tente executar um ping [IpDoKubuntu] no CMD/PowerShell do seu Windows para ver se ele enxerga o Kubuntu na rede.

Certifique-se de que em qualquer dispositivo da rede que, não seja a máquina host, você está digitando http://IpDoKubuntu:Porta. Atente-se que tem que ser http e https.

Uma dica/tentativa extra: você pode baixar o app do NextCloud em seu smartphone e tentar acessar por ele também. Desde que esteja sempre na mesma rede, é claro.

1 curtida

Sim estão, a única diferença entre as duas é que o Kubuntu está ligado por WiFi e o Windows por Cabo de Ethernet.

O Windows está a reconhecê-lo

Continua sem funcionar… :thinking:

Vou tentar e já digo os resultados, muito obrigado!

Bem, parece que estava a usar o IP errado (estava a usar o IP público em vez do IP Local), mas, mesmo ao usar o IP local, não consigo aceder ao nextcloud em nenhum outro dispositivo.

Já agora, voltei a executar o comando docker-compose up-d e apareceu um erro… Será que tem alguma coisa a ver com isso?

Erro
xico@xico-Aspire-A515-51G:~/nextcloud$ docker-compose up -d
app-server is up-to-date
Starting nginx-server ... 
onlyoffice-document-server is up-to-date
Starting nginx-server ... error

ERROR: for nginx-server  Cannot start service nginx: driver failed programming external connectivity on endpoint nginx-server (785fda789c4bc90fd719630c40d884a63b8cfc1d852a152fcb8c64f51e079bac): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use

ERROR: for nginx  Cannot start service nginx: driver failed programming external connectivity on endpoint nginx-server (785fda789c4bc90fd719630c40d884a63b8cfc1d852a152fcb8c64f51e079bac): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.```

Mais uma vez muito obrigado por toda a ajuda :slight_smile:

1 curtida

Use o comando ipconfig no Windows e ip -a no Kubuntu e veja se as duas máquinas estão na mesma faixa de IP.

Sim, realmente tem que ser o IP local.

O comando docker-compose up -d é usado para subir os containers. Que no caso são três: NextCloud, OnlyOffice e Nginx.
Você pode usar o docker ps -a para listar os três e, antes de subir eles novamente, pode remover os já existentes (caso dia intenção seja recomeçar tudo do zero).
Para remover você deve usar docker rm [IDouNOMEDOCANTAINER]. Dessa forma cobertura subir novamente eles com a configuração inicial.