Enviar arquivos para "/"
This commit is contained in:
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
||||
FROM php:8.2-apache
|
||||
|
||||
# Utilitários + extensões PHP
|
||||
RUN apt-get update && apt-get install -y unzip \
|
||||
&& docker-php-ext-install pdo pdo_mysql \
|
||||
&& a2enmod rewrite \
|
||||
&& sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copia e extrai o zip na raiz do Apache
|
||||
COPY app.zip /tmp/app.zip
|
||||
RUN unzip /tmp/app.zip -d /var/www/html/ \
|
||||
&& rm /tmp/app.zip
|
||||
|
||||
# Permissões
|
||||
RUN mkdir -p /var/www/html/uploads \
|
||||
&& chown -R www-data:www-data /var/www/html \
|
||||
&& chmod 755 /var/www/html/uploads
|
||||
|
||||
EXPOSE 80
|
||||
19
Leiame.txt
Normal file
19
Leiame.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
1. PHP 8.2 + Apache (imagem base)
|
||||
2. apt install unzip (para extrair o zip)
|
||||
3. pdo + pdo_mysql (já resolvido antes)
|
||||
4. mod_rewrite (Apache)
|
||||
5. COPY app.zip → /tmp/app.zip
|
||||
6. unzip → /var/www/html/
|
||||
7. rm app.zip (limpa o temporário)
|
||||
8. cria uploads/ + permissões www-data
|
||||
/////////////////////////
|
||||
Como usar no Coolify
|
||||
O repositório/contexto de build precisa ter dois arquivos na raiz:
|
||||
|
||||
Dockerfile
|
||||
app.zip ← zip com todas as pastas da aplicação
|
||||
⚠️ Atenção com a estrutura do zip — ao criar o app.zip, zipar o conteúdo da pasta, não a pasta em si. Exemplo correto no terminal:
|
||||
|
||||
# Dentro da pasta do projeto:
|
||||
zip -r app.zip assets includes pages index.php login.php logout.php .env.example
|
||||
Se o zip criar uma subpasta interna (ex: app/index.php), o unzip extrai para /var/www/html/app/ em vez de /var/www/html/ — e o site não abre.
|
||||
100
README.md
Normal file
100
README.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Catálogo Pessoal de Vídeos & Dicas
|
||||
|
||||
Sistema PHP puro + MySQL para catalogar vídeos, artigos e anotações pessoais.
|
||||
|
||||
## Requisitos
|
||||
|
||||
- PHP 8.0+
|
||||
- MySQL 5.7+ / MariaDB 10.3+
|
||||
- Extensão PDO + pdo_mysql habilitada
|
||||
|
||||
## Instalação
|
||||
|
||||
### 1. Banco de dados
|
||||
|
||||
```bash
|
||||
mysql -u root -p -e "CREATE DATABASE catalogo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
||||
mysql -u root -p catalogo < catalogo_schema.sql
|
||||
```
|
||||
|
||||
### 2. Configurar conexão
|
||||
|
||||
Edite `includes/db.php` com suas credenciais:
|
||||
|
||||
```php
|
||||
define('DB_HOST', 'localhost');
|
||||
define('DB_NAME', 'catalogo');
|
||||
define('DB_USER', 'root');
|
||||
define('DB_PASS', 'sua_senha');
|
||||
```
|
||||
|
||||
### 3. Permissão de upload
|
||||
|
||||
```bash
|
||||
chmod 755 uploads/
|
||||
```
|
||||
|
||||
### 4. Servidor de desenvolvimento
|
||||
|
||||
```bash
|
||||
# Na raiz do projeto:
|
||||
php -S localhost:8000
|
||||
```
|
||||
|
||||
Acesse: http://localhost:8000
|
||||
|
||||
### 5. Login padrão
|
||||
|
||||
- **E-mail:** admin@local.dev
|
||||
- **Senha:** admin123
|
||||
|
||||
> ⚠️ Troque a senha em produção! Use `password_hash('nova_senha', PASSWORD_BCRYPT)` e atualize na tabela `usuario`.
|
||||
|
||||
---
|
||||
|
||||
## Estrutura de arquivos
|
||||
|
||||
```
|
||||
/
|
||||
├── index.php # Dashboard
|
||||
├── login.php # Tela de login
|
||||
├── logout.php
|
||||
├── assets/
|
||||
│ ├── css/style.css # Estilos (tema claro/escuro)
|
||||
│ └── js/theme.js # Toggle de tema
|
||||
├── includes/
|
||||
│ ├── db.php # Conexão PDO
|
||||
│ ├── auth.php # Sessão e autenticação
|
||||
│ ├── helpers.php # Utilitários (upload, tags, CSRF...)
|
||||
│ └── layout.php # Header, sidebar, footer
|
||||
├── pages/
|
||||
│ ├── conteudo/ # CRUD de conteúdos
|
||||
│ │ ├── list.php
|
||||
│ │ ├── form.php # Criar + Editar
|
||||
│ │ ├── view.php
|
||||
│ │ └── delete.php
|
||||
│ ├── nota/ # CRUD de notas + upload
|
||||
│ │ ├── list.php
|
||||
│ │ ├── form.php
|
||||
│ │ ├── view.php
|
||||
│ │ └── delete.php
|
||||
│ └── lookup/ # CRUD genérico: Tipo, Fonte, Tag
|
||||
│ ├── _crud.php # Motor reutilizável
|
||||
│ ├── tipo.php
|
||||
│ ├── fonte.php
|
||||
│ └── tag.php
|
||||
└── uploads/ # Arquivos enviados (gitignore!)
|
||||
```
|
||||
|
||||
## Funcionalidades
|
||||
|
||||
- ✅ Login com sessão PHP + bcrypt
|
||||
- ✅ CSRF em todos os formulários POST
|
||||
- ✅ Dashboard com estatísticas
|
||||
- ✅ Catálogo de conteúdos com filtros (tipo, fonte, ranking, busca)
|
||||
- ✅ Notas com upload de arquivo (qualquer tipo, máx. 20MB)
|
||||
- ✅ Tags N:N para conteúdos e notas
|
||||
- ✅ Ranking de 1 a 5 estrelas (interativo)
|
||||
- ✅ CRUD completo: Tipos, Fontes, Tags
|
||||
- ✅ Tema claro/escuro persistido em localStorage
|
||||
- ✅ Escape de output (XSS protection)
|
||||
Reference in New Issue
Block a user