Categoria: Server

  • Laravel/Vite Remote Development Setup With NGINX

    ⚙️ Laravel/Vite Remote Development Setup
    This guide provides the necessary steps to configure your remote Nginx server and your Laravel/Vite application to enable Hot Module Replacement (HMR) for a seamless remote development experience over HTTPS.

    1. Configure Vite for Remote HMR

    You must tell Vite to use your public domain and the secure WebSocket protocol (wss) for HMR, and to listen on all interfaces.

    Edit your project’s vite.config.js file:

    JavaScript

    // vite.config.js

    import { defineConfig } from 'vite';
    import laravel from 'laravel-vite-plugin';
    
    export default defineConfig({
        plugins: [
            laravel([
                'resources/css/app.css',
                'resources/js/app.js',
            ]),
        ],
        server: {
            // 1. Listen on all interfaces so the outside world can connect
            host: '0.0.0.0', 
            port: 5173,
            // 2. CRUCIAL: Tell the browser the public address for HMR
            hmr: {
                // Replace with your actual remote domain (e.g., saladeformacao.pt)
                host: 'yourdomain.com',  //neste caso saladeformacao.pt
                // Use WSS because your Nginx is serving over HTTPS
                protocol: 'wss',        
            },
        }
    });
    

    2. Start Vite Dev Server and Clean Up

    On your remote server, run these commands via SSH:

    Remove the development marker file (if it exists). This forces Laravel to use the new HMR configuration when it creates the file again.

    Bash

    rm -f public/hot
    Start the development server. Keep this terminal window open while you are developing.

    Bash

    npm run dev

    3. Configure Nginx Reverse Proxy

    Nginx must be configured to act as a reverse proxy, redirecting all requests for Vite assets and WebSockets (HMR) from the public port 443 to the internal Vite server on port 5173.

    Add the following location block inside your Nginx server block that listens on 443 ssl:

    Nginx

    server {
        listen 443 ssl;
        server_name yourdomain.com;
        # ... other SSL/root configuration ...
    
        # ----------------------------------------------------
        # NGINX PROXY FOR VITE DEVELOPMENT ASSETS AND HMR (PORT 5173)
        # ----------------------------------------------------
        location ~ ^/(resources/|@vite/|node_modules/) {
            # The internal address where Vite is running
            proxy_pass http://localhost:5173; 
    
            # Standard headers
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            # **CRITICAL: WebSocket headers for HMR**
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    
        # ... Your existing PHP/Laravel root location ...
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    }
    

    Apply Nginx Changes
    Test and reload the Nginx configuration:

    Bash

    sudo nginx -t
    sudo systemctl reload nginx
    

    4. Firewall Check (Important)

    Ensure your server’s firewall (e.g., UFW) or cloud security settings (e.g., AWS Security Groups) allows incoming connections on port 5173. If this port is closed, the browser cannot connect to the Vite server.

    Bash

    #  Example for UFW to allow access from any IP
    sudo ufw allow 5173
    
  • Pureftpd Instalação no Debian

    Resumo

    Instalar:
    apt-get install pure-ftpd-common pure-ftpd

    Criar grupo local:
    groupadd ftpgroup

    Criar utilizador local com o grupo criado no passo anterior:
    useradd -g ftpgroup -d /dev/null -s /etc ftpuser

    Criar utilizador teste1:
    pure-pw useradd test1 -u ftpuser -d /home/ftpusers/test1

    Sempre que houver alteração nos utilizadores atualizar a base de dados:
    pure-pw mkdb

    Alterar pass do utilizador teste1:
    pure-pw passwd test1
    pure-pw mkdb

    Remover utilizador teste1:
    pure-pw userdel test1
    pure-pw mkdb

    Desenvolvimento

    Fonte: https://www.debianhelp.co.uk/pureftp.htm

  • As principais responsabilidades de um administrador de base de dados

    O trabalho principal de um administrador de base de dados (ABD) é garantir que os dados estejam disponíveis, protegidos contra perda e corrupção e facilmente acessíveis conforme necessário. Abaixo estão algumas das principais responsabilidades que compõem o trabalho do dia-a-dia de um ABD.

    1. Instalação e manutenção de software

    Um ABD frequentemente colabora na instalação e configuração inicial de uma nova base de dados. O administrador do sistema configura o hardware e implementa o sistema operativo para o servidor da base de dados, o ABD instala o software de base de dados e o configura-o. Como atualizações são necessárias, o ABD lida com essa manutenção de forma contínua.

    2. Extração, transformação e carregamento de dados

    Conhecida como ETL (ETC em pt), extração, transformação e carregamento de dados referem-se à importação eficiente de grandes volumes de dados que foram extraídos de vários sistemas para um ambiente de data warehouse. Estes dados externos são limpos e transformados para caber no formato desejado para que possam ser importados para um repositório central.

    3. Tratamento especializado de dados

    As bases de dados de hoje podem ser enormes e conter tipos de dados não estruturados, como imagens, documentos ou ficheiros de som e vídeo. Gerir uma base de dados muito grande (VLDB) pode exigir habilidades especializadas para a monitorização e ajustes adicionais mantendo-a eficiênciente.

    4. Backup e recuperação de base de dados

    Os ABDs criam planos e procedimentos de backup e recuperação com base nas melhores práticas do setor e, em seguida, certifique-se de que as etapas necessárias sejam seguidas. Os backups custam tempo e dinheiro, portanto o ABD pode ter que persuadir a gerência a tomar as precauções necessárias para preservar os dados.

    5. Segurança

    Um ABD precisa conhecer as fraquezas potenciais do software de base de dados e do sistema geral da empresa e trabalhar para minimizar os riscos. Nenhum sistema é cem por cento imune a ataques, mas implementar as melhores práticas pode minimizar os riscos. No caso de uma falha de segurança ou irregularidade, o ABD pode consultar os logs de auditoria para ver quem fez e o quê com os dados. Trilhas de auditoria também são importantes ao trabalhar com dados regulamentados.

    (mais…)
  • SSH – Criar chave para acesso remoto

    Gerar uma chave Ed25519 para acesso remoto a um PC com servidor ssh.

    ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/[pasta/]id_da_chave -C "[email protected]"
    Copiar a chave
      ssh-copy-id -i ~/.ssh/[pasta/]id_da_chave utilizador@endereço 

    A chave pública é copiada para o ficheiro /home/$USER/.ssh/authorized_keys

    Testar a ligação: ssh -i ~/.ssh/[pasta/]id_da_chave utilizador@endereço

    Para usar só ligação remota com a chave (recomendado), no PC remoto com Debian: Alterar o ficheiro "/etc/ssh/sshd_config"

    Adicionar:

    PasswordAuthentication no

    Reiniciar o serviço ssh para que as alterações tenham efeito.

    sudo systemctl restart ssh

    Fonte: https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54