Skip to content

uses-ink/uses.ink

Repository files navigation

This is a minimalistic blog platform for developers. It's based on markdown files and uses GitHub as a storage.

WebsiteDemo

Note

A rewrite of this project with astro is in progress. The legacy version will be kept in the legacy branch.

Self-hosting

Quick and easy

You can copy the docker-compose.yml file and use the Docker image to quickly spin up a self-hosted instance of the platform.

curl -o docker-compose.yml https://raw.githubusercontent.com/uses-ink/uses.ink/main/docker/docker-compose.prod.yml
docker compose up -d

I want to do it myself

You can either build the Docker image yourself (why would you do that?) or run the platform directly on your machine, see the Development and Building sections.

Development

This project uses bun as the package manager. It is needed to properly install and patch the dependencies (See Patches).

Make sure to have a redis server running somewhere. You can use the following command to quicly spin up a redis server with docker:

docker run -d --name redis -p 6379:6379 redis

Populate the apps/web/.env file with the required values:

cp apps/web/.env.example apps/web/.env

Note

You don't need to set a GITHUB_TOKEN for development. The platform will work without it.

To start the development server, run the following commands:

# Install dependencies
bun install
# Start the development server
bun --cwd apps/web dev

Building

Docker

To build the Docker image, run the following command:

docker build -f docker/Dockerfile -t uses.ink .
Local

To build the project, run the following command:

bun build

Patches

This project uses a patched version of hast-util-sanitize@5.0.1 to allow unknown nodes to be processed through an unknownNodeHandler function. We need this to allow plugins such as remark-frontmatter to pass declarations.

Contributing

Contributions are welcome! Feel free to open an issue or a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.