Wallbase is a user-driven wallpaper gallery social network. All content is provided by the uploaders.
Current status: under development.
This option is recommended if you either got a powerful enough machine to run the application in Docker containers or Linux the OS.
- Install Docker
- The first time you run the app execute:
(with the
npm run docker:dev -- up --build
--build
flag at the end) - The next time you'll be able to startup the dev server without the
--build
flag:npm run docker:dev -- up
This option is NOT recommended if you either got a powerful enough machine to run the application in Docker containers or Linux as the OS.
- Install NodeJS, PostgreSQL
- Install GraphicsMagick. On MacOS:
On Ubuntu:
brew install graphicsmagick
sudo apt install graphicsmagick
- Run:
cd <PROJECT_DIR> npm run generate-dotenv npm run knex migrate:latest npm run knex seed:run npm run dev
- Browse http://localhost:3000
- To run the development server:
- As a standalone app:
npm run dev
- A a docker container:
npm run docker:dev -- up
- As a standalone app:
- To run the linter:
npm run lint
dotenv
- loads .env file data into process.env. skipping existing varsknex
- SQL query builderdb-errors
- provides wrapping PostgreSQL errors into separate classes (e.g.UniqueViolationError
).pg
- PostgreSQL client required by knexpassport
- to support authorization with social networksformidable
- server side image uploadingzod
- typesafe validatorswr
- react hooks for data fetching (similar to react-query)gm
- GraphicsMagick wrappergeoip-lite
- free version of MaxMind's GeoIP databasecookie
- cookie parser / serializercountry-data
- large JSON files with country info (names, codes, langs, etc)@fortawesome/*
- svg iconscountry-code-emoji
- converts country codes to emoji country flagsts-node
- typescript executor for standalone scripts in scripts/*tsconfig-paths
- plugin for ts-node that loads path aliases from tsconfig