Essa Documentação Está disponível apenas para visualização e estudos, todos os links e repositórios estão sendo desenvolvidos
Essa documentação serve para estudos, quando a os repositórios estiver disponíveis os desenvolvedores proderão usar para criar seus próprios aplicativos
A AsSkyMeet é uma rede social descentralizada que prioriza privacidade, controle do usuário e interoperabilidade entre servidores independentes. Esta documentação cobre desde a instalação até o desenvolvimento de extensões.
Como usuários, vivenciamos os desafios da centralização e censura nas redes sociais atuais. A AsSkyMeet devolve o controle dos seus dados e da sua privacidade a você, promovendo conexões genuínas e seguras.
Execute seu próprio nó e conecte-se a outros servidores via protocolo aberto. Cada servidor é independente mas pode se comunicar de forma segura.
Mensagens protegidas com criptografia. Suas Mensagens são criptografadas, sua privacidade é respeitada.
Desenvolva aplicativos e integrações com nossa API documentada. Use APIs abertas para criar experiências personalizadas.
A AsSkyMeet opera em um modelo ASM Protocol, onde cada servidor (nó) pode se comunicar com outros através de um protocolo seguro. Esta arquitetura permite:
Client → API Gateway → Core → (Encriptação de Mensagens) → ASM Protocol
↓ ↑
Banco de Dados ← Chaves de Criptografia
Para começar a usar a AsSkyMeet, você pode se registrar em qualquer servidor disponível ou criar seu próprio nó.
// Requisição para registro
POST /api/v1/auth/register
{
"username": "novousuario",
"email": "usuario@email.com",
"password": "senhasegura123"
}
Após o registro, personalize seu perfil com informações básicas e preferências de privacidade.
// Atualizando perfil
PATCH /api/v1/users/@me
{
"display_name": "Meu Nome",
"bio": "Entusiasta da liberdade digital",
"privacy_level": "friends_only"
}
Autentica um usuário e retorna um token JWT.
{
"username": "seu_usuario",
"password": "sua_senha"
}
// Resposta de sucesso
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600,
"user": {
"id": "usr_123456789",
"username": "seu_usuario",
"display_name": "Seu Nome"
}
}
Retorna os dados do usuário autenticado.
GET /api/v1/users/@me HTTP/1.1
Authorization: Bearer SEU_TOKEN_JWT
Cria uma nova publicação.
{
"content": "Olá, mundo! Esta é minha primeira publicação na AsSkyMeet!",
"visibility": "public",
"attachments": []
}
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1625097600
A AsSkyMeet utiliza OAuth 2.0 e JWT para autenticação. Todos os endpoints (exceto /auth) requerem um token de acesso válido no header Authorization
.
Validade curta (1h), usado para requisições API
Validade longa (7d), usado para obter novos access tokens
Para integrações de terceiros (validade configurável)
// 1. Obter token
const response = await fetch('https://api.asskymeet.com/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'meu_usuario',
password: 'minha_senha_segura'
})
});
const { token } = await response.json();
// 2. Usar token em requisições autenticadas
const profile = await fetch('https://api.asskymeet.com/users/@me', {
headers: { 'Authorization': `Bearer ${token}` }
});
interface User {
id: string; // Identificador único
username: string; // Nome de usuário único
display_name?: string; // Nome de exibição
email: string; // Email (criptografado)
bio?: string; // Biografia do perfil
avatar_url?: string; // URL do avatar
created_at: Date; // Data de criação
updated_at: Date; // Data da última atualização
}
interface Post {
id: string; // Identificador único
author_id: string; // ID do autor
content: string; // Conteúdo textual
visibility: 'public' | 'friends_only' | 'private';
attachments: Attachment[]; // Mídias anexadas
likes_count: number; // Número de curtidas
comments_count: number; // Número de comentários
created_at: Date; // Data de criação
}
interface ServerNode {
id: string; // Identificador único
domain: string; // Domínio do servidor
name: string; // Nome amigável
description?: string; // Descrição do servidor
version: string; // Versão do software
users_count: number; // Número de usuários
is_public: boolean; // Se aceita novos usuários
created_at: Date; // Data de registro
}
# 1. Instalar dependências
sudo apt update && sudo apt install -y \
git nodejs npm postgresql redis
# 2. Clonar repositório
git clone https://github.com/asskymeet/core.git
cd core
# 3. Instalar dependências do projeto
npm install
# 4. Configurar banco de dados
sudo -u postgres psql -c "CREATE USER asskymeet WITH PASSWORD 'senha_segura';"
sudo -u postgres psql -c "CREATE DATABASE asskymeet OWNER asskymeet;"
# 5. Configurar .env
cp .env.example .env
nano .env # Editar configurações
# 6. Executar migrações
npx knex migrate:latest
# 7. Iniciar servidor
npm run start
# Configurações básicas
NODE_ENV=production
PORT=3000
DOMAIN=meuservidor.com
# Banco de dados
DB_HOST=localhost
DB_PORT=5432
DB_USER=asskymeet
DB_PASSWORD=senha_segura
DB_NAME=asskymeet
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
# Segurança
JWT_SECRET=segredo_muito_seguro
ENCRYPTION_KEY=chave_de_32_bytes
# Federação
FEDERATION_ENABLED=true
FEDERATION_DOMAIN=meuservidor.com
# 1. Baixar docker-compose.yml
curl -O https://raw.githubusercontent.com/asskymeet/core/main/docker-compose.yml
# 2. Configurar .env
cp .env.example .env
nano .env # Editar configurações
# 3. Iniciar containers
docker-compose up -d
# 4. Executar migrações
docker-compose exec app npx knex migrate:latest
# 5. Acessar em http://localhost:3000
version: '3.8'
services:
app:
image: asskymeet/core:latest
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DB_HOST=db
- REDIS_HOST=redis
depends_on:
- db
- redis
volumes:
- ./uploads:/app/uploads
db:
image: postgres:13
restart: unless-stopped
environment:
POSTGRES_USER: asskymeet
POSTGRES_PASSWORD: senha_segura
POSTGRES_DB: asskymeet
volumes:
- pg_data:/var/lib/postgresql/data
redis:
image: redis:6
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
pg_data:
redis_data:
# Ver logs do aplicativo
docker-compose logs -f app
# Parar todos os containers
docker-compose down
# Fazer backup do banco de dados
docker-compose exec db pg_dump -U asskymeet asskymeet > backup.sql
# Atualizar para a versão mais recente
docker-compose pull
docker-compose up -d
# Exemplo de docker-compose para múltiplas instâncias
version: '3.8'
services:
app:
image: asskymeet/core:latest
deploy:
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M
environment:
- NODE_ENV=production
- CLUSTER_MODE=true
- REDIS_HOST=redis
loadbalancer:
image: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
db:
image: postgres:13
environment:
POSTGRES_USER: asskymeet
POSTGRES_PASSWORD: senha_segura
POSTGRES_DB: asskymeet
volumes:
- pg_data:/var/lib/postgresql/data
redis:
image: redis:6
volumes:
- redis_data:/data
volumes:
pg_data:
redis_data:
A AsSkyMeet combina os melhores aspectos das redes Globals com um foco especial em privacidade e controle do usuário. Diferente de outras soluções, oferecemos: - Monetização direta entre criadores e seguidores - Controle granular de privacidade - Compatibilidade com múltiplos protocolos - Foco em comunidades auto-geridas
Sim, oferecemos ferramentas de migração para várias plataformas. O processo geralmente envolve: 1. Exportar seus dados da plataforma atual 2. Converter para o formato AsSkyMeet usando nosso conversor 3. Importar para seu novo servidor Consulte nossa documentação de migração para instruções específicas.
Acreditamos em um modelo sustentável que não explore os usuários: - Doações voluntárias - Serviços premium opcionais (como servidores gerenciados) - Parcerias com organizações alinhadas com nossos valores - Nenhum anúncio ou venda de dados O código principal sempre permanecerá aberto e gratuito.
Se seu servidor não está se conectando com outros nós:
Se o servidor está lento: