openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
우수 웹툰·웹코믹을 찾아보고, 신진 작가의 원작을 매일 업데이트되는 새 챕터와 함께 감상하세요
Find great webtoons & webcomics, Read original stories from emerging creators, with new chapters updated daily. Download now to join our growing community of readers and artists.
미디어TypeScript · PythonGitHub @taddyorg온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A fun webtoons app. All comics on Inkverse are self-hosted by the creator.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Inkverse is a fun comic reading app built using Typescript, React, React Native, Node.js, and GraphQL.
website/ # React web frontend
react-native/ # React Native mobile app
graphql-server/ # Node.js GraphQL backend
worker/ # To run background jobs
cloud/ # Cloudflare edge services
packages/ # Internal packages
├── shared-client/ # Frontend shared utilities
├── shared-server/ # Backend shared utilities
└── public/ # Shared constants and types
Setup the website by pointing it to Inkverse's production API for quick setup and without needing to setup a local server.
# Install all project dependencies
yarn install
We use inkverse.test instead of localhost to avoid cookie conflicts between projects. Add to your hosts file (sudo vim /etc/hosts on Mac/Linux):
127.0.0.1 localhost
127.0.0.1 inkverse.test
In website/config.ts, change:
// Change this line:
export const config = developmentConfig;
// To this:
export const config = developmentConfigButProductionData;
This will get the website to use Inkverse's production API.
# Start watching internal packages
yarn watch:internal-packages
cd website
yarn dev
🎉 Success! Visit inkverse.test:8082 to see the app.
⚠️ Note: Google/Apple/Email signup don't work in local development due to CORS restrictions. Use the React Native app for production account login.
Setup the iOS/Android apps by pointing it to Inkverse's production API for quick setup and without needing to setup a local server.
yarn install
We use inkverse.test instead of localhost to avoid cookie conflicts between projects. Add to your hosts file (sudo vim /etc/hosts on Mac/Linux):
127.0.0.1 localhost
127.0.0.1 inkverse.test
In react-native/config.ts, change:
// Change this line:
export const config = developmentConfig;
// To this:
export const config = developmentConfigButProductionData;
This will get the React Native app to use Inkverse's production API.
# Start watching internal packages
yarn watch:internal-packages
cd react-native
yarn dev
i for iOS Simulatora for Android Emulator⚠️ Note: Google/Apple signup don't work in local development. Use email login:
Complete Setup: For building new features or fixing complex bugs, you'll need to setup the backend as well as the website and mobile apps. Follow the steps below to setup the backend locally.
Copy the environment template:
cp packages/shared-server/.env.example packages/shared-server/.env
Create and start PostgreSQL container:
# Replace USERNAME, PASSWORD, and DB-NAME with your preferred values
docker run --name inkverse-postgres \
-e POSTGRES_USER=USERNAME \
-e POSTGRES_PASSWORD=PASSWORD \
-e POSTGRES_DB=DB-NAME \
-d \
-v ~/docker-vms/inkverse-postgresdata:/var/lib/postgresql \
-p "5432:5432" \
postgres:18.4
Update .env file:
DATABASE_USERNAME=USERNAME
DATABASE_PASSWORD=PASSWORD
DATABASE_NAME=DB-NAME
DATABASE_ENDPOINT=localhost
DATABASE_PORT=5432
docker run -d --name inkverse-queues -p 4102:4100 admiralpiett/goaws
Generate RSA key pair for JWT tokens:
# Generate private key
ssh-keygen -t rsa -b 4096 -m PEM -f jwt.key
# Generate public key
openssl rsa -in jwt.key -pubout -outform PEM -out jwt.key.pub
Update .env file with the keys (remove newlines, replace with \n):
PUBLIC_JWT=your_public_key_here
PRIVATE_JWT=your_private_key_here
Clean up key files:
rm jwt.key jwt.key.pub
yarn install
yarn run migrate
Add to your hosts file (sudo vim /etc/hosts):
127.0.0.1 localhost
127.0.0.1 inkverse.test
127.0.0.1 us-east-1.goaws.com # For AWS SQS Local
# Keep this running in a separate terminal
yarn watch:internal-packages
cd graphql-server
yarn run dev
🎉 Success! Inkverse Server is running on inkverse.test:3010.
Yay! You have Inkverse running locally, but you don't have any comics in your database to display! Let's fix that.
What we'll do:
Step 1: Download comics list
Download the full comics list from Taddy's Webcomics API and rename it to comicseries.txt. Place it in the worker/input directory.
Step 2: Create a queue to handle the responses from Taddy's API
cd worker
yarn run create-new-queue INKVERSE_HIGH_PRIORITY
Step 3: Get detailed information about each comic and its episodes
Get your Taddy API User ID and API Key for free by signing up here. Add them to your .env file in packages/shared-server:
TADDY_USER_ID=your_user_id
TADDY_API_KEY=your_api_key
TADDY_WEBHOOK_SECRET=xyz
TADDY_WEBHOOK_ENDPOINT_URL=http://inkverse.test:3010/api/worker/process-taddy-webhook
You will also need to add TADDY_WEBHOOK_SECRET and TADDY_WEBHOOK_ENDPOINT_URL to your .env file in worker/.env. You can use the same values as above. (You can use any value for WEBHOOK_SECRET, it just has to be the same for both files)
TADDY_WEBHOOK_SECRET=xyz
TADDY_WEBHOOK_ENDPOINT_URL=http://inkverse.test:3010/api/worker/process-taddy-webhook
Then run the following command to download detailed information about each comic and its episodes:
cd worker
yarn run import-all-comics
Step 4: Add the comics to your local database
Finally, run the following command process every message in the INKVERSE_HIGH_PRIORITY queue (each message contains details about a comic and its episodes) and we will add these comics and episodes to your local database.
cd worker
yarn run receive-messages INKVERSE_HIGH_PRIORITY
# Start all containers
docker start inkverse-postgres && docker start inkverse-queues
# Stop all containers
docker stop inkverse-postgres && docker stop inkverse-queues
# View running containers
docker ps -a
# Watch and rebuild internal packages (you need to always have this running in the background to check for changes with your internal packages)
yarn watch:internal-packages
# Start backend server
cd graphql-server && yarn run dev
# Start website
cd website && yarn run dev
# Start React Native (Expo)
cd react-native && yarn dev
# Start React Native (Development Build)
cd react-native && yarn run ios # iOS
cd react-native && yarn run android # Android
# Run migrations
yarn run migrate
# Rollback last migration
yarn run migrate:rollback
# Generate types after schema changes
yarn run graphql-codegen
| Document | Description |
|---|---|
| CLAUDE.md | Claude AI instructions for working with the project |
| Architecture | High-level overview of the application |
| Docs Folder | Complete project documentation |