Giter Club home page Giter Club logo

hanas's Introduction

Hanas (ʜᴀʜ-nəs, -nahs /ˈhɑ.nəs/, /ˈhɑ.nɑs/; like Japanese 話す) is a conlanging tool and community, primarily inspired by the work of ConWorkShop. The backend is built using Express and Prisma. It is frontend-agnostic, but the official frontend is a webapp built using Vue 3.

Use & Connect

Hanas doesn't have an official instance (yet!). In the meantime, you can contribute code here, and discuss the project in our discord! (For the privacy enthusiasts: eventually an IRC might be set up or something? Sorry, Discord's easy to use.)

Contributing

There's a lot of work to be done! If you:

  • know a non-English language: help translate! See packages/web/TRANSLATE.md.
  • know Typescript, Vue, HTML, or CSS: contribute code! See HACKING.md in this folder.

Note that contributions will also be placed under the same license as the rest of the project.

Running

  1. Grep through the project for CHANGEME. There are a few places where the default configuration has default passwords and such, and these need to be changed.
  2. Double check what localhost really is for you. On WSL installs, you might need to grep host.docker.internal and change it to localhost, or vice versa - I haven't done enough hunting to figure out what's going on with that.

Using Docker (the easy way)

Run docker-compose up in the project root. Configure access with nginx if you should so desire.

Do it yourself (the hard way)

Hanas is made of a few different services:

  • the database
  • the backend
  • storage backend
  • Thumbor
  • the frontend (optional)
  • the announcements server (optional)
  • the events server (optional)
  • and Kratos.

The frontend is technically optional, but in practice you'll want to run a frontend of some sort. The announcements and events servers are entirely optional, but can provide a better experience for the frontend. The storage backend needs to be an S3-compatible one.

Database

I prefer Postgres, and so things will probably work best with that; however, any database supported by Prisma other than Mongo should work. If you want to change the database type, change it in schema.prisma. See the Prisma documentation for how to do all that.

Once you have the database running, build a connection URL for it to supply to the backend.

Kratos

Kratos is the authentication solution. It's not perfect yet, but it provides enough that reimplementing what it has would be a waste of time. In my experience, Kratos has been slightly hellish to set up. We provide a known working Kratos config for Hanas in the root of the repo under kratos-config.

Once you have Kratos set up, remember which host and ports it's running on. By default with our config, it's localhost:4433 and localhost:4434.

Backend

See the README in packages/api.

Frontend

See the README in packages/web.

Announcements server

This is optional. It allows people with access to the running server to post announcements with a certain period of relevance - say, notify about community events, maintenance times, etc. See the README in packages/announcement-server.

Event server

This is also optional. It allows users to receive WebSocket notifications about language invitations, announcements from the announcement server, and optionally provide a sort of "activity feed" which details current work being done using the website. See the README in packages/event-server.

License

Somewhat out of the ordinary: the Non-Violent Public License. You can treat this as a fairly standard copyleft license, save for the ethical restrictions on usage. Given that this is a conlanging webapp, most of these can likely safely be ignored by anyone simply running or using Hanas, save for

ii. You do not use the Work for the purpose of Surveilling or tracking individuals for financial gain.

and

viii. You do not use the Work to either Discriminate or spread Hate Speech on the basis of sex, sexual orientation, gender identity, race, age, disability, color, national origin, religion, caste, or lower economic status.

I trust anyone running a Hanas instance should have no issues following either part of the license.

hanas's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hanas's Issues

Dependency Dashboard

This issue provides visibility into Renovate updates and their statuses. Learn more

Rate Limited

These updates are currently rate limited. Click on a checkbox below to force their creation now.

  • ⬆ Update dependency @types/bull to v3.15.6
  • ⬆ Update dependency redoc-cli to v0.13.1
  • ⬆ Update dependency aws-sdk to v2.1041.0
  • ⬆ Update dependency class-transformer to v0.5.1
  • ⬆ Update dependency concurrently to v6.4.0
  • ⬆ Update dependency git-cz to v4.8.0
  • ⬆ Update dependency jest to v27.4.3
  • ⬆ Update dependency prettier to v2.5.0
  • ⬆ Update dependency simple-git-hooks to v2.7.0
  • ⬆ Update dependency swagger-ui-express to v4.2.0
  • ⬆ Update dependency ts-node to v10.4.0
  • ⬆ Update dependency tsconfig-paths to v3.12.0
  • ⬆ Update dependency ua-parser-js to v0.8.1
  • ⬆ Update dependency @types/jest to v27
  • ⬆ Update dependency @types/node to v16
  • ⬆ Update dependency @vueuse/core to v7
  • ⬆ Update dependency bull to v4
  • ⬆ Update dependency ua-parser-js to v1

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.


  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.