Skip to content
This repository has been archived by the owner on Apr 17, 2024. It is now read-only.

Commit

Permalink
Add default configuration file to debian package
Browse files Browse the repository at this point in the history
  • Loading branch information
silverpill committed May 12, 2022
1 parent dad9640 commit 6c675c1
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 26 deletions.
22 changes: 21 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ cargo build --release --features production

This command will produce two binaries in `target/release` directory, `mitra` and `mitractl`.

Create the database and the configuration file (see [example](./config.yaml.example)). Default config file path is `/etc/mitra/config.yaml`, but it can be changed using `CONFIG_PATH` environment variable.
Install PostgreSQL and create the database.

Create configuration file by copying `contrib/mitra_config.yaml` and configure the instance. Default config file path is `/etc/mitra/config.yaml`, but it can be changed using `CONFIG_PATH` environment variable.

Start Mitra:

Expand All @@ -53,6 +55,24 @@ Building instructions for `mitra-web` frontend can be found at https://codeberg.

To run Mitra as a systemd service, check out the [systemd unit file example](./contrib/mitra.service).

### Debian package

Download and install Mitra package:

```
dpkg -i mitra.deb
```

Install PostgreSQL and create the database. Open configuration file `/etc/mitra/config.yaml` and configure the instance.

Start Mitra:

```
systemctl start mitra
```

An HTTP server will be needed to handle HTTPS requests and serve the frontend. See the example of [nginx configuration file](./contrib/mitra.nginx).

## Development

### Create database
Expand Down
28 changes: 6 additions & 22 deletions config.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,19 @@ storage_dir: files
http_host: '127.0.0.1'
http_port: 8380

log_level: info
instance_uri: 127.0.0.1:8380
instance_title: Mitra
instance_short_description: My instance
instance_description: My instance
registrations_open: true

# Domain name
instance_uri: example.tld
instance_title: example
instance_short_description: my instance
# Long description can contain markdown syntax
instance_description: my instance

registrations_open: false
# EIP-4361 login message
login_message: 'Do not sign this message on other sites!'
post_character_limit: 2000

# Blockchain settings
# Set `blockchain` key to `null` to disable blockchain integration
blockchain:
# CAIP-2 chain ID (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
chain_id: eip155:31337
contract_address: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'
contract_dir: contracts
api_url: 'http://127.0.0.1:8545'
# Block explorer base URL (should be compatible with https://eips.ethereum.org/EIPS/eip-3091)
explorer_url: null
# Instance private key
signing_key: null

# IPFS settings
# Set `ipfs_api_url` key to `null` to disable IPFS integration
ipfs_api_url: 'http://127.0.0.1:5001'
# IPFS gateway for clients
ipfs_gateway_url: 'https://ipfs.io'
ipfs_gateway_url: 'http://127.0.0.1:8001'
42 changes: 42 additions & 0 deletions contrib/mitra_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Mitra configuration file

database_url: postgres://mitra:mitra@127.0.0.1:5432/mitra
storage_dir: /var/lib/mitra

http_host: '127.0.0.1'
http_port: 8383

# Log level (debug, info, warn)
#log_level: info

# Domain name
instance_uri: example.tld
instance_title: example
instance_short_description: my instance
# Long description can contain markdown syntax
instance_description: my instance

registrations_open: false

# EIP-4361 login message
#login_message: 'Do not sign this message on other sites!'

#post_character_limit: 2000

# Blockchain settings
# Example:
#blockchain:
# chain_id: eip155:31337
# contract_address: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'
# contract_dir: contracts
# api_url: 'http://127.0.0.1:8545'
# explorer_url: null
# signing_key: null
# Set `blockchain` key to `null` to disable blockchain integration
blockchain: null

# IPFS settings
# Set `ipfs_api_url` key to `null` to disable IPFS integration
ipfs_api_url: null
# IPFS gateway for clients
ipfs_gateway_url: null
5 changes: 3 additions & 2 deletions scripts/build_deb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ echo "Architecture: $ARCH" >> $PACKAGE_DIR/debian/control
# Service
cp contrib/mitra.service $PACKAGE_DIR/debian/mitra.service

# Config directory
# Config file
mkdir -p $PACKAGE_DIR/etc/mitra
cp contrib/mitra_config.yaml $PACKAGE_DIR/etc/mitra/config.yaml

# Config example
mkdir -p $PACKAGE_DIR/usr/share/mitra/examples
cp config.yaml.example $PACKAGE_DIR/usr/share/mitra/examples/config.yaml
cp contrib/mitra_config.yaml $PACKAGE_DIR/usr/share/mitra/examples/config.yaml

# Binaries
mkdir -p $PACKAGE_DIR/usr/bin
Expand Down
5 changes: 4 additions & 1 deletion src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,14 @@ fn default_post_character_limit() -> usize { 2000 }

#[derive(Clone, Deserialize)]
pub struct BlockchainConfig {
// CAIP-2 chain ID (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
pub chain_id: String,
pub contract_address: String,
pub contract_dir: PathBuf,
pub api_url: String,
// Block explorer base URL (should be compatible with https://eips.ethereum.org/EIPS/eip-3091)
pub explorer_url: Option<String>,
// Instance private key
pub signing_key: String,
}

Expand Down Expand Up @@ -122,7 +125,7 @@ pub struct Config {
#[serde(default = "default_log_level")]
pub log_level: LogLevel,

// Instance info
// Domain name or <IP address>:<port>
instance_uri: String,
pub instance_title: String,
pub instance_short_description: String,
Expand Down

0 comments on commit 6c675c1

Please sign in to comment.