Skip to content

Commit

Permalink
Merge pull request #47 from arifszn/v0.2.0
Browse files Browse the repository at this point in the history
Publish version 0.2.0
  • Loading branch information
arifszn committed Aug 7, 2023
2 parents bfea05e + eab02e5 commit 7a94588
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 44 deletions.
96 changes: 60 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@
</p>
</p>

![preview](https://github.com/arifszn/vail/assets/45073703/245f4f93-6c8b-4fd6-8683-8bd713a0f3f7)
<p align="center">
<img src="https://github.com/arifszn/vail/assets/45073703/b6f3bae6-62a4-45cf-8c15-1995f461a923" alt="Preview" width="60%"/>
<br/>
<img src="https://arifszn.netlify.app/assets/img/drop-shadow.png" width="50%" alt="Shadow"/>
</p>

## Introduction

Expand Down Expand Up @@ -130,12 +134,15 @@ Vail supports the following services:

- [Multiple Node version](#multiple-node-version)
- [MySQL](#mysql)
- [PostgreSQL](#postgresql)
- [Adminer](#adminer)
- [Redis](#redis)
- [MinIO](#minio)
- [Mailpit](#mailpit)
- [Meilisearch](#meilisearch)
- [Memcached](#memcached)
- [RabbitMQ](#rabbitmq)
- [Redis](#redis)
- [PostgreSQL](#postgresql)
- [MariaDB](#mariadb)

### Multiple Node version

Expand All @@ -145,23 +152,12 @@ This service allows you to run your application with different Node.js versions

MySQL is a popular open-source relational database management system. Vail provides a pre-configured MySQL server.

The default credentials:

```
Username: vail
Password: password
```

### PostgreSQL

PostgreSQL, often simply "Postgres", is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance.
The default config:

The default credentials:

```
Username: vail
Password: password
```
- Host: mysql
- Port: 3306
- Username: vail
- Password: password

### Adminer

Expand All @@ -171,22 +167,30 @@ Adminer can be accessed at `http://localhost:8080` (default configuration).

![Adminer](https://github.com/arifszn/vail/assets/45073703/3ab55913-6869-4dd1-a55f-ec1e87385aba)

### Redis

Redis is an open-source in-memory data structure project implementing a distributed, in-memory key-value database with optional durability.

The default config:

- Port: 6379

### MinIO

MinIO delivers AWS S3 compatible high-performance object storage. It provides the ability to store large amounts of unstructured data. In Vail, a pre-configured MinIO server is included.

MinIO can be used to mock AWS S3 bucket in the local development environment. This is particularly handy while developing features that interact with S3 but you don't want to incur unnecessary AWS costs. To setup MinIO to act as an AWS S3 bucket:

1. Access the MinIO dashboard via `http://localhost:8900`.

![MinIO dashboard](https://github.com/arifszn/vail/assets/45073703/49e33577-7674-4eff-b585-1c9b04a38706)

2. Login using the MinIO root user and password provided in the Vail setup.

The default credentials:

```
Username: vail
Password: password
```
- Username: vail
- Password: password

3. Create a new bucket, which will act as your S3 bucket.
4. For your application, use the MinIO host, bucket name, access key, and secret key in place of the AWS S3 details.
Expand All @@ -201,32 +205,52 @@ You can send your emails to Mailpit SMTP server at `localhost:1025` and view the

![Mailpit](https://github.com/arifszn/vail/assets/45073703/9968631f-454e-4af2-9d22-a2f1cfbe640b)

### RabbitMQ
### Meilisearch

RabbitMQ is an open-source message-queueing software also known as a message broker or queue manager.
Meilisearch is an open-source search engine. It's a perfect fit for apps needing to deliver user-friendly, relevant and fast search.

### Redis
The default config:

Redis is an open-source in-memory data structure project implementing a distributed, in-memory key-value database with optional durability.
- Port: 7700

### Memcached

Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read.

### MariaDB
The default config:

MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system, which provides similar features and interface.
- Port: 11211

The default credentials:
### RabbitMQ

```
Username: vail
Password: password
```
RabbitMQ is an open-source message-queueing software also known as a message broker or queue manager.

### Meilisearch
The default config:

Meilisearch is an open-source search engine. It's a perfect fit for apps needing to deliver user-friendly, relevant and fast search.
- Port: 5672
- Dashboard: `http://localhost:15672`

### PostgreSQL

PostgreSQL, also known as Postgres, is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance.

The default config:

- Host: pgsql
- Port: 3306
- Username: vail
- Password: password

### MariaDB

MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system, which provides similar features and interface.

The default config:

- Host: mariadb
- Port: 3306
- Username: vail
- Password: password

## Support

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "vail",
"version": "0.1.2",
"description": "Dockerize Your JavaScript/TypeScript Apps Effortlessly.",
"version": "0.2.0",
"description": "Docker powered local development experience for JavaScript/TypeScript Apps.",
"license": "MIT",
"author": "arifszn",
"repository": {
Expand Down
4 changes: 3 additions & 1 deletion src/console/init-command.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ const {
NODE_16,
SERVICES,
SERVICES_WITH_VOLUME,
DEFAULT_SELECTED_SERVICES,
} = require('../constants/services');

const initCommand = async () => {
Expand Down Expand Up @@ -94,7 +95,8 @@ const initCommand = async () => {
message: 'Select the services you want to include:',
name: 'services',
choices: SERVICES,
default: [],
default: DEFAULT_SELECTED_SERVICES,
pageSize: SERVICES.length,
},
]);

Expand Down
16 changes: 13 additions & 3 deletions src/constants/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ const NODE_18 = '18';
const SERVICES = [
MY_SQL,
ADMINER,
REDIS,
MINIO,
MAILPIT,
MEILISEARCH,
MEMCACHED,
RABBITMQ,
PGSQL,
REDIS,
MEMCACHED,
MARIADB,
MEILISEARCH,
];

const SERVICES_WITH_VOLUME = [
Expand All @@ -36,6 +36,15 @@ const SERVICES_WITH_VOLUME = [
MEILISEARCH,
];

const DEFAULT_SELECTED_SERVICES = [
MY_SQL,
ADMINER,
REDIS,
MINIO,
MAILPIT,
MEILISEARCH,
];

const NODE_VERSIONS = [NODE_14, NODE_16, NODE_18];

// export all
Expand All @@ -46,4 +55,5 @@ module.exports = {
NODE_18,
SERVICES,
SERVICES_WITH_VOLUME,
DEFAULT_SELECTED_SERVICES,
};

0 comments on commit 7a94588

Please sign in to comment.