postfix_admin 0.1.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +37 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +22 -0
- data/README.md +47 -32
- data/Rakefile +6 -0
- data/bin/console +18 -0
- data/docker-admin/Dockerfile +6 -0
- data/docker-admin/config.local.php +21 -0
- data/docker-app-2.5/Dockerfile +15 -0
- data/docker-app/Dockerfile +25 -0
- data/docker-app/docker-entrypoint.sh +5 -0
- data/docker-app/my.cnf +5 -0
- data/docker-compose.yml +46 -0
- data/docker-db/postfix.v1841.sql +383 -0
- data/{spec/postfix_test.sql → docker-db/postfix.v352.sql} +1 -28
- data/docker-db/postfix.v740.sql +269 -0
- data/{bin → exe}/postfix_admin +1 -0
- data/lib/postfix_admin.rb +1 -1
- data/lib/postfix_admin/admin.rb +62 -0
- data/lib/postfix_admin/alias.rb +65 -0
- data/lib/postfix_admin/application_record.rb +44 -0
- data/lib/postfix_admin/base.rb +120 -75
- data/lib/postfix_admin/cli.rb +173 -58
- data/lib/postfix_admin/concerns/.keep +0 -0
- data/lib/postfix_admin/concerns/dovecot_cram_md5_password.rb +30 -0
- data/lib/postfix_admin/concerns/existing_timestamp.rb +18 -0
- data/lib/postfix_admin/domain.rb +98 -0
- data/lib/postfix_admin/domain_admin.rb +8 -0
- data/lib/postfix_admin/doveadm.rb +37 -0
- data/lib/postfix_admin/log.rb +5 -0
- data/lib/postfix_admin/mail_domain.rb +9 -0
- data/lib/postfix_admin/mailbox.rb +89 -0
- data/lib/postfix_admin/models.rb +10 -170
- data/lib/postfix_admin/quota.rb +6 -0
- data/lib/postfix_admin/runner.rb +108 -36
- data/lib/postfix_admin/version.rb +1 -1
- data/postfix_admin.gemspec +22 -12
- metadata +80 -55
- data/spec/base_spec.rb +0 -235
- data/spec/cli_spec.rb +0 -286
- data/spec/models_spec.rb +0 -146
- data/spec/postfix_admin.conf +0 -5
- data/spec/runner_spec.rb +0 -194
- data/spec/spec_helper.rb +0 -159
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 70bd18f454fd77684ab652949e36829f6d9e3e8e275e475819b60b025b3fea6e
|
4
|
+
data.tar.gz: 477da494d685bcaeb45f090d92edbfb1abc6af811e04172a4e4f1865b51eac46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7b8c5f69e4f15589ca5c10250e88d9dfb76e623bed02548161e24c29fca02e74e97b154bf5f876936922e7b7d134f4fb6f46ab2e85765198fbaf5c7dddb1c32
|
7
|
+
data.tar.gz: 777b1af93896c8df8a4eab31af493af872a694502cab871c0ea99bcf7e8a82ce014228e82b117c37a3c9953ec86bd54648a01954c2bcae72c373fca94d1c18dc
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ master ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ master ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
test:
|
18
|
+
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v2
|
23
|
+
- name: Set up Ruby
|
24
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
25
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
26
|
+
# uses: ruby/setup-ruby@v1
|
27
|
+
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
28
|
+
with:
|
29
|
+
ruby-version: 2.6
|
30
|
+
- name: docker-compose up
|
31
|
+
run: docker-compose up -d
|
32
|
+
- name: Run tests for Ruby 2.6
|
33
|
+
run: docker-compose exec -T app /wait-for-it.sh db:3306 -- rake
|
34
|
+
- name: Remove Gemfile.lock
|
35
|
+
run: rm -f Gemfile.lock
|
36
|
+
- name: Run tests for Ruby 2.5.0
|
37
|
+
run: docker-compose exec -T app2.5 rake
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
## 0.2.1
|
2
|
+
* Supported `superadmin` column of `admin` table
|
3
|
+
* Added `passwordhash_prefix` keyword in the configuration format for backward compatibility
|
4
|
+
|
5
|
+
## 0.2.0
|
6
|
+
* Switched its object-relational mapper from DataMapper to ActiveRecord
|
7
|
+
* Stored password hash includes scheme prefix: like `{CRAM-MD5}`, `{PLAIN}`
|
8
|
+
|
9
|
+
## 0.1.4
|
10
|
+
* Added "log" subcommand
|
11
|
+
|
12
|
+
## 0.1.3
|
13
|
+
* Support for activation and deactivation of domain, admin and account
|
14
|
+
* Added "edit_admin" subcommand
|
15
|
+
|
16
|
+
## 0.1.2
|
17
|
+
* Support password hash by doveadm (external subcommand)
|
18
|
+
* Show active status
|
19
|
+
* Don't show passwords using list format
|
20
|
+
|
21
|
+
## 0.1.1, release 2013-05-10
|
22
|
+
* Fixed string length of password
|
data/README.md
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/postfix_admin.png)](https://rubygems.org/gems/postfix_admin)
|
2
2
|
|
3
|
-
|
3
|
+
# postfix_admin
|
4
|
+
|
5
|
+
Command Line Tools for Postfix Admin
|
4
6
|
|
5
7
|
## Description
|
6
8
|
|
7
|
-
Postfix Admin Web
|
9
|
+
* Postfix Admin (Original Web-based Application)
|
10
|
+
+ Web Site http://postfixadmin.sourceforge.net/
|
11
|
+
+ GitHub https://github.com/postfixadmin/postfixadmin
|
8
12
|
|
9
|
-
|
13
|
+
* Postfix Admin 3.2 is supported.
|
10
14
|
|
11
|
-
|
12
|
-
PostgreSQL is not supported.
|
15
|
+
* MySQL/MariaDB is supported.
|
13
16
|
|
14
|
-
|
17
|
+
* Other database engines are not supported.
|
15
18
|
|
16
19
|
## Installation
|
17
20
|
|
@@ -19,6 +22,18 @@ Install postfix_admin as:
|
|
19
22
|
|
20
23
|
$ gem install postfix_admin
|
21
24
|
|
25
|
+
Just execute `postfix_admin` command to generate your config file: `~/.postfix_admin.conf`
|
26
|
+
|
27
|
+
$ postfix_admin
|
28
|
+
|
29
|
+
Edit the file for your environment:
|
30
|
+
|
31
|
+
$ vi ~/.postfix_admin.conf
|
32
|
+
|
33
|
+
You can see domains on your host if the `database` parameter is set properly:
|
34
|
+
|
35
|
+
$ postfix_admin show
|
36
|
+
|
22
37
|
## Usage
|
23
38
|
|
24
39
|
List the postfix_admin subcommands as:
|
@@ -26,29 +41,29 @@ List the postfix_admin subcommands as:
|
|
26
41
|
$ postfix_admin
|
27
42
|
|
28
43
|
```
|
29
|
-
|
30
|
-
postfix_admin
|
31
|
-
postfix_admin
|
32
|
-
postfix_admin
|
33
|
-
postfix_admin
|
34
|
-
postfix_admin
|
35
|
-
postfix_admin
|
36
|
-
postfix_admin
|
37
|
-
postfix_admin
|
38
|
-
postfix_admin
|
39
|
-
postfix_admin
|
40
|
-
postfix_admin
|
41
|
-
postfix_admin
|
42
|
-
postfix_admin
|
43
|
-
postfix_admin
|
44
|
-
postfix_admin
|
45
|
-
postfix_admin
|
44
|
+
Commands:
|
45
|
+
postfix_admin account_passwd user@example.com new_password # Change password of account
|
46
|
+
postfix_admin add_account user@example.com password # Add an account
|
47
|
+
postfix_admin add_admin admin@example.com password # Add an admin user
|
48
|
+
postfix_admin add_admin_domain admin@example.com example.com # Add admin_domain
|
49
|
+
postfix_admin add_alias alias@example.com goto@example.net # Add an alias
|
50
|
+
postfix_admin add_domain example.com # Add a domain
|
51
|
+
postfix_admin admin_passwd admin@example.com new_password # Change password of admin
|
52
|
+
postfix_admin delete_account user@example.com # Delete an account
|
53
|
+
postfix_admin delete_admin admin@example.com # Delete an admin
|
54
|
+
postfix_admin delete_admin_domain admin@example.com example.com # Delete admin_domain
|
55
|
+
postfix_admin delete_alias alias@example.com # Delete an alias
|
56
|
+
postfix_admin delete_domain example.com # Delete a domain
|
57
|
+
postfix_admin dump # Dump all data
|
58
|
+
postfix_admin edit_account user@example.com # Edit an account
|
59
|
+
postfix_admin edit_admin admin@example.com # Edit an admin user
|
60
|
+
postfix_admin edit_alias alias@example.com # Edit an alias
|
61
|
+
postfix_admin edit_domain example.com # Edit a domain limitation
|
62
|
+
postfix_admin help [COMMAND] # Describe available commands or one specific command
|
63
|
+
postfix_admin log # Show action logs
|
64
|
+
postfix_admin schemes # List all supported password schemes
|
65
|
+
postfix_admin setup example.com password # Setup a domain
|
66
|
+
postfix_admin show [example.com | admin@example.com | user@example.com] # Show domains or admins or mailboxes
|
67
|
+
postfix_admin summary [example.com] # Summarize the usage of PostfixAdmin
|
68
|
+
postfix_admin version # Show postfix_admin version
|
46
69
|
```
|
47
|
-
|
48
|
-
## Contributing
|
49
|
-
|
50
|
-
1. Fork it
|
51
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
52
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
53
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
54
|
-
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "postfix_admin"
|
5
|
+
require "postfix_admin/cli"
|
6
|
+
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
|
10
|
+
cli = PostfixAdmin::CLI.new
|
11
|
+
cli.db_setup
|
12
|
+
include PostfixAdmin
|
13
|
+
|
14
|
+
require "pry"
|
15
|
+
Pry.start
|
16
|
+
|
17
|
+
# require "irb"
|
18
|
+
# IRB.start(__FILE__)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?php
|
2
|
+
$CONF['configured'] = true;
|
3
|
+
|
4
|
+
$CONF['database_type'] = 'mysqli';
|
5
|
+
$CONF['database_user'] = 'postfix';
|
6
|
+
$CONF['database_password'] = 'password';
|
7
|
+
$CONF['database_name'] = 'postfix';
|
8
|
+
$CONF['database_host'] = 'db';
|
9
|
+
|
10
|
+
$CONF['password_validation'] = array(
|
11
|
+
# '/regular expression/' => '$PALANG key (optional: + parameter)',
|
12
|
+
'/.{5}/' => 'password_too_short 5', # minimum length 5 characters
|
13
|
+
'/([a-zA-Z].*){3}/' => 'password_no_characters 3', # must contain at least 3 characters
|
14
|
+
// '/([0-9].*){2}/' => 'password_no_digits 2', # must contain at least 2 digits
|
15
|
+
);
|
16
|
+
|
17
|
+
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
|
18
|
+
|
19
|
+
// setup_password: 'password'
|
20
|
+
$CONF['setup_password'] = '87745eb0269b2f42813b23601be3231a:6e41880f73d97321f2f0b25a5ee30f57f5ab3be8';
|
21
|
+
?>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
FROM ruby:2.5.0
|
2
|
+
|
3
|
+
RUN apt-get update && \
|
4
|
+
apt-get install -y dovecot-core iproute2 mariadb-client && \
|
5
|
+
rm -rf /var/lib/apt/lists/*
|
6
|
+
|
7
|
+
WORKDIR /app
|
8
|
+
|
9
|
+
COPY Gemfile postfix_admin.gemspec ./
|
10
|
+
COPY ./lib/postfix_admin/version.rb ./lib/postfix_admin/version.rb
|
11
|
+
|
12
|
+
RUN gem install bundler && bundle install
|
13
|
+
|
14
|
+
COPY spec/postfix_admin.conf /root/.postfix_admin.conf
|
15
|
+
COPY docker-app/my.cnf /root/.my.cnf
|
@@ -0,0 +1,25 @@
|
|
1
|
+
FROM ruby:2.6
|
2
|
+
|
3
|
+
RUN apt-get update && \
|
4
|
+
apt-get install -y dovecot-core iproute2 mariadb-client && \
|
5
|
+
rm -rf /var/lib/apt/lists/*
|
6
|
+
|
7
|
+
WORKDIR /app
|
8
|
+
|
9
|
+
COPY Gemfile postfix_admin.gemspec ./
|
10
|
+
COPY ./lib/postfix_admin/version.rb ./lib/postfix_admin/version.rb
|
11
|
+
|
12
|
+
RUN gem install bundler && bundle install
|
13
|
+
|
14
|
+
COPY spec/postfix_admin.conf /root/.postfix_admin.conf
|
15
|
+
COPY docker-app/my.cnf /root/.my.cnf
|
16
|
+
|
17
|
+
# for GitHub Actions
|
18
|
+
RUN curl https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh -so /wait-for-it.sh && \
|
19
|
+
chmod 755 /wait-for-it.sh
|
20
|
+
|
21
|
+
COPY docker-app/docker-entrypoint.sh /docker-entrypoint.sh
|
22
|
+
RUN chmod +x /docker-entrypoint.sh
|
23
|
+
ENTRYPOINT ["/docker-entrypoint.sh"]
|
24
|
+
|
25
|
+
CMD ["irb"]
|
data/docker-app/my.cnf
ADDED
data/docker-compose.yml
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
version: '3.8'
|
2
|
+
|
3
|
+
services:
|
4
|
+
app:
|
5
|
+
build:
|
6
|
+
context: .
|
7
|
+
dockerfile: docker-app/Dockerfile
|
8
|
+
tty: true
|
9
|
+
volumes:
|
10
|
+
- .:/app
|
11
|
+
depends_on:
|
12
|
+
- db
|
13
|
+
app2.5:
|
14
|
+
tty: true
|
15
|
+
build:
|
16
|
+
context: .
|
17
|
+
dockerfile: docker-app-2.5/Dockerfile
|
18
|
+
volumes:
|
19
|
+
- .:/app
|
20
|
+
depends_on:
|
21
|
+
- db
|
22
|
+
admin:
|
23
|
+
build: docker-admin
|
24
|
+
ports:
|
25
|
+
- '8080:80'
|
26
|
+
volumes:
|
27
|
+
- ./docker-admin/config.local.php:/var/www/html/config.local.php
|
28
|
+
depends_on:
|
29
|
+
- db
|
30
|
+
# environment:
|
31
|
+
# - POSTFIXADMIN_DB_TYPE=mysqli
|
32
|
+
# - POSTFIXADMIN_DB_HOST=db
|
33
|
+
# - POSTFIXADMIN_DB_USER=postfix
|
34
|
+
# - POSTFIXADMIN_DB_PASSWORD=password
|
35
|
+
# - POSTFIXADMIN_DB_NAME=postfix
|
36
|
+
db:
|
37
|
+
image: mariadb:10
|
38
|
+
volumes:
|
39
|
+
- ./docker-db/postfix.v1841.sql:/docker-entrypoint-initdb.d/postfix.sql
|
40
|
+
# - ./docker-db/postfix.v740.sql:/docker-entrypoint-initdb.d/postfix.sql
|
41
|
+
# - ./docker-db/postfix.v352.sql:/docker-entrypoint-initdb.d/postfix.sql
|
42
|
+
environment:
|
43
|
+
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
44
|
+
- MYSQL_USER=postfix
|
45
|
+
- MYSQL_PASSWORD=password
|
46
|
+
- MYSQL_DATABASE=postfix
|
@@ -0,0 +1,383 @@
|
|
1
|
+
-- phpMyAdmin SQL Dump
|
2
|
+
-- version 4.9.1
|
3
|
+
-- https://www.phpmyadmin.net/
|
4
|
+
--
|
5
|
+
-- Host: localhost
|
6
|
+
-- Generation Time: May 30, 2020 at 04:28 PM
|
7
|
+
-- Server version: 10.3.17-MariaDB-log
|
8
|
+
-- PHP Version: 7.2.11
|
9
|
+
|
10
|
+
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
11
|
+
SET AUTOCOMMIT = 0;
|
12
|
+
START TRANSACTION;
|
13
|
+
SET time_zone = "+00:00";
|
14
|
+
|
15
|
+
|
16
|
+
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
17
|
+
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
18
|
+
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
19
|
+
/*!40101 SET NAMES utf8mb4 */;
|
20
|
+
|
21
|
+
--
|
22
|
+
-- Database: `postfix`
|
23
|
+
--
|
24
|
+
|
25
|
+
-- --------------------------------------------------------
|
26
|
+
|
27
|
+
--
|
28
|
+
-- Table structure for table `admin`
|
29
|
+
--
|
30
|
+
|
31
|
+
CREATE TABLE `admin` (
|
32
|
+
`username` varchar(255) NOT NULL,
|
33
|
+
`password` varchar(255) NOT NULL,
|
34
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
35
|
+
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
36
|
+
`active` tinyint(1) NOT NULL DEFAULT 1,
|
37
|
+
`superadmin` tinyint(1) NOT NULL DEFAULT 0,
|
38
|
+
`phone` varchar(30) NOT NULL DEFAULT '',
|
39
|
+
`email_other` varchar(255) NOT NULL DEFAULT '',
|
40
|
+
`token` varchar(255) NOT NULL DEFAULT '',
|
41
|
+
`token_validity` datetime NOT NULL DEFAULT '2000-01-01 00:00:00'
|
42
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Admins';
|
43
|
+
|
44
|
+
-- --------------------------------------------------------
|
45
|
+
|
46
|
+
--
|
47
|
+
-- Table structure for table `alias`
|
48
|
+
--
|
49
|
+
|
50
|
+
CREATE TABLE `alias` (
|
51
|
+
`address` varchar(255) NOT NULL,
|
52
|
+
`goto` text NOT NULL,
|
53
|
+
`domain` varchar(255) NOT NULL,
|
54
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
55
|
+
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
56
|
+
`active` tinyint(1) NOT NULL DEFAULT 1
|
57
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Aliases';
|
58
|
+
|
59
|
+
-- --------------------------------------------------------
|
60
|
+
|
61
|
+
--
|
62
|
+
-- Table structure for table `alias_domain`
|
63
|
+
--
|
64
|
+
|
65
|
+
CREATE TABLE `alias_domain` (
|
66
|
+
`alias_domain` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
67
|
+
`target_domain` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
68
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
69
|
+
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
70
|
+
`active` tinyint(1) NOT NULL DEFAULT 1
|
71
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Domain Aliases';
|
72
|
+
|
73
|
+
-- --------------------------------------------------------
|
74
|
+
|
75
|
+
--
|
76
|
+
-- Table structure for table `config`
|
77
|
+
--
|
78
|
+
|
79
|
+
CREATE TABLE `config` (
|
80
|
+
`id` int(11) NOT NULL,
|
81
|
+
`name` varchar(20) NOT NULL DEFAULT '',
|
82
|
+
`value` varchar(20) NOT NULL DEFAULT ''
|
83
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PostfixAdmin settings';
|
84
|
+
|
85
|
+
--
|
86
|
+
-- Dumping data for table `config`
|
87
|
+
--
|
88
|
+
|
89
|
+
INSERT INTO `config` (`id`, `name`, `value`) VALUES
|
90
|
+
(1, 'version', '1841');
|
91
|
+
|
92
|
+
-- --------------------------------------------------------
|
93
|
+
|
94
|
+
--
|
95
|
+
-- Table structure for table `domain`
|
96
|
+
--
|
97
|
+
|
98
|
+
CREATE TABLE `domain` (
|
99
|
+
`domain` varchar(255) NOT NULL,
|
100
|
+
`description` varchar(255) NOT NULL,
|
101
|
+
`aliases` int(10) NOT NULL DEFAULT 0,
|
102
|
+
`mailboxes` int(10) NOT NULL DEFAULT 0,
|
103
|
+
`maxquota` bigint(20) NOT NULL DEFAULT 0,
|
104
|
+
`quota` bigint(20) NOT NULL DEFAULT 0,
|
105
|
+
`transport` varchar(255) NOT NULL,
|
106
|
+
`backupmx` tinyint(1) NOT NULL DEFAULT 0,
|
107
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
108
|
+
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
109
|
+
`active` tinyint(1) NOT NULL DEFAULT 1
|
110
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Domains';
|
111
|
+
|
112
|
+
--
|
113
|
+
-- Dumping data for table `domain`
|
114
|
+
--
|
115
|
+
|
116
|
+
INSERT INTO `domain` (`domain`, `description`, `aliases`, `mailboxes`, `maxquota`, `quota`, `transport`, `backupmx`, `created`, `modified`, `active`) VALUES
|
117
|
+
('ALL', '', 0, 0, 0, 0, '', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1);
|
118
|
+
|
119
|
+
-- --------------------------------------------------------
|
120
|
+
|
121
|
+
--
|
122
|
+
-- Table structure for table `domain_admins`
|
123
|
+
--
|
124
|
+
|
125
|
+
CREATE TABLE `domain_admins` (
|
126
|
+
`username` varchar(255) NOT NULL,
|
127
|
+
`domain` varchar(255) NOT NULL,
|
128
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
129
|
+
`active` tinyint(1) NOT NULL DEFAULT 1
|
130
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Domain Admins';
|
131
|
+
|
132
|
+
-- --------------------------------------------------------
|
133
|
+
|
134
|
+
--
|
135
|
+
-- Table structure for table `fetchmail`
|
136
|
+
--
|
137
|
+
|
138
|
+
CREATE TABLE `fetchmail` (
|
139
|
+
`id` int(11) UNSIGNED NOT NULL,
|
140
|
+
`mailbox` varchar(255) NOT NULL,
|
141
|
+
`src_server` varchar(255) NOT NULL,
|
142
|
+
`src_auth` enum('password','kerberos_v5','kerberos','kerberos_v4','gssapi','cram-md5','otp','ntlm','msn','ssh','any') DEFAULT NULL,
|
143
|
+
`src_user` varchar(255) NOT NULL,
|
144
|
+
`src_password` varchar(255) NOT NULL,
|
145
|
+
`src_folder` varchar(255) NOT NULL,
|
146
|
+
`poll_time` int(11) UNSIGNED NOT NULL DEFAULT 10,
|
147
|
+
`fetchall` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
148
|
+
`keep` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
149
|
+
`protocol` enum('POP3','IMAP','POP2','ETRN','AUTO') DEFAULT NULL,
|
150
|
+
`usessl` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
151
|
+
`extra_options` text DEFAULT NULL,
|
152
|
+
`returned_text` text DEFAULT NULL,
|
153
|
+
`mda` varchar(255) NOT NULL,
|
154
|
+
`date` timestamp NOT NULL DEFAULT '1999-12-31 15:00:00',
|
155
|
+
`sslcertck` tinyint(1) NOT NULL DEFAULT 0,
|
156
|
+
`sslcertpath` varchar(255) DEFAULT '',
|
157
|
+
`sslfingerprint` varchar(255) CHARACTER SET latin1 DEFAULT '',
|
158
|
+
`domain` varchar(255) CHARACTER SET latin1 DEFAULT '',
|
159
|
+
`active` tinyint(1) NOT NULL DEFAULT 0,
|
160
|
+
`created` timestamp NOT NULL DEFAULT '1999-12-31 15:00:00',
|
161
|
+
`modified` timestamp NOT NULL DEFAULT current_timestamp()
|
162
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
163
|
+
|
164
|
+
-- --------------------------------------------------------
|
165
|
+
|
166
|
+
--
|
167
|
+
-- Table structure for table `log`
|
168
|
+
--
|
169
|
+
|
170
|
+
CREATE TABLE `log` (
|
171
|
+
`timestamp` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
172
|
+
`username` varchar(255) NOT NULL,
|
173
|
+
`domain` varchar(255) NOT NULL,
|
174
|
+
`action` varchar(255) NOT NULL,
|
175
|
+
`data` text NOT NULL,
|
176
|
+
`id` int(11) NOT NULL
|
177
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Log';
|
178
|
+
|
179
|
+
-- --------------------------------------------------------
|
180
|
+
|
181
|
+
--
|
182
|
+
-- Table structure for table `mailbox`
|
183
|
+
--
|
184
|
+
|
185
|
+
CREATE TABLE `mailbox` (
|
186
|
+
`username` varchar(255) NOT NULL,
|
187
|
+
`password` varchar(255) NOT NULL,
|
188
|
+
`name` varchar(255) NOT NULL,
|
189
|
+
`maildir` varchar(255) NOT NULL,
|
190
|
+
`quota` bigint(20) NOT NULL DEFAULT 0,
|
191
|
+
`local_part` varchar(255) NOT NULL,
|
192
|
+
`domain` varchar(255) NOT NULL,
|
193
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
194
|
+
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
195
|
+
`active` tinyint(1) NOT NULL DEFAULT 1,
|
196
|
+
`phone` varchar(30) NOT NULL DEFAULT '',
|
197
|
+
`email_other` varchar(255) NOT NULL DEFAULT '',
|
198
|
+
`token` varchar(255) NOT NULL DEFAULT '',
|
199
|
+
`token_validity` datetime NOT NULL DEFAULT '2000-01-01 00:00:00'
|
200
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Mailboxes';
|
201
|
+
|
202
|
+
-- --------------------------------------------------------
|
203
|
+
|
204
|
+
--
|
205
|
+
-- Table structure for table `quota`
|
206
|
+
--
|
207
|
+
|
208
|
+
CREATE TABLE `quota` (
|
209
|
+
`username` varchar(255) NOT NULL,
|
210
|
+
`path` varchar(100) NOT NULL,
|
211
|
+
`current` bigint(20) DEFAULT NULL
|
212
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
213
|
+
|
214
|
+
-- --------------------------------------------------------
|
215
|
+
|
216
|
+
--
|
217
|
+
-- Table structure for table `quota2`
|
218
|
+
--
|
219
|
+
|
220
|
+
CREATE TABLE `quota2` (
|
221
|
+
`username` varchar(100) NOT NULL,
|
222
|
+
`bytes` bigint(20) NOT NULL DEFAULT 0,
|
223
|
+
`messages` int(11) NOT NULL DEFAULT 0
|
224
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
225
|
+
|
226
|
+
-- --------------------------------------------------------
|
227
|
+
|
228
|
+
--
|
229
|
+
-- Table structure for table `vacation`
|
230
|
+
--
|
231
|
+
|
232
|
+
CREATE TABLE `vacation` (
|
233
|
+
`email` varchar(255) NOT NULL,
|
234
|
+
`subject` varchar(255) NOT NULL,
|
235
|
+
`body` text NOT NULL,
|
236
|
+
`cache` text NOT NULL,
|
237
|
+
`domain` varchar(255) NOT NULL,
|
238
|
+
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
239
|
+
`active` tinyint(1) NOT NULL DEFAULT 1,
|
240
|
+
`modified` timestamp NOT NULL DEFAULT current_timestamp(),
|
241
|
+
`activefrom` timestamp NOT NULL DEFAULT '1999-12-31 15:00:00',
|
242
|
+
`activeuntil` timestamp NOT NULL DEFAULT '2038-01-17 15:00:00',
|
243
|
+
`interval_time` int(11) NOT NULL DEFAULT 0
|
244
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Vacation';
|
245
|
+
|
246
|
+
-- --------------------------------------------------------
|
247
|
+
|
248
|
+
--
|
249
|
+
-- Table structure for table `vacation_notification`
|
250
|
+
--
|
251
|
+
|
252
|
+
CREATE TABLE `vacation_notification` (
|
253
|
+
`on_vacation` varchar(150) NOT NULL,
|
254
|
+
`notified` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
255
|
+
`notified_at` timestamp NOT NULL DEFAULT current_timestamp()
|
256
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Vacation Notifications';
|
257
|
+
|
258
|
+
--
|
259
|
+
-- Indexes for dumped tables
|
260
|
+
--
|
261
|
+
|
262
|
+
--
|
263
|
+
-- Indexes for table `admin`
|
264
|
+
--
|
265
|
+
ALTER TABLE `admin`
|
266
|
+
ADD PRIMARY KEY (`username`);
|
267
|
+
|
268
|
+
--
|
269
|
+
-- Indexes for table `alias`
|
270
|
+
--
|
271
|
+
ALTER TABLE `alias`
|
272
|
+
ADD PRIMARY KEY (`address`),
|
273
|
+
ADD KEY `domain` (`domain`);
|
274
|
+
|
275
|
+
--
|
276
|
+
-- Indexes for table `alias_domain`
|
277
|
+
--
|
278
|
+
ALTER TABLE `alias_domain`
|
279
|
+
ADD PRIMARY KEY (`alias_domain`),
|
280
|
+
ADD KEY `active` (`active`),
|
281
|
+
ADD KEY `target_domain` (`target_domain`);
|
282
|
+
|
283
|
+
--
|
284
|
+
-- Indexes for table `config`
|
285
|
+
--
|
286
|
+
ALTER TABLE `config`
|
287
|
+
ADD PRIMARY KEY (`id`),
|
288
|
+
ADD UNIQUE KEY `name` (`name`);
|
289
|
+
|
290
|
+
--
|
291
|
+
-- Indexes for table `domain`
|
292
|
+
--
|
293
|
+
ALTER TABLE `domain`
|
294
|
+
ADD PRIMARY KEY (`domain`);
|
295
|
+
|
296
|
+
--
|
297
|
+
-- Indexes for table `domain_admins`
|
298
|
+
--
|
299
|
+
ALTER TABLE `domain_admins`
|
300
|
+
ADD KEY `username` (`username`);
|
301
|
+
|
302
|
+
--
|
303
|
+
-- Indexes for table `fetchmail`
|
304
|
+
--
|
305
|
+
ALTER TABLE `fetchmail`
|
306
|
+
ADD PRIMARY KEY (`id`);
|
307
|
+
|
308
|
+
--
|
309
|
+
-- Indexes for table `log`
|
310
|
+
--
|
311
|
+
ALTER TABLE `log`
|
312
|
+
ADD PRIMARY KEY (`id`),
|
313
|
+
ADD KEY `timestamp` (`timestamp`),
|
314
|
+
ADD KEY `domain_timestamp` (`domain`,`timestamp`);
|
315
|
+
|
316
|
+
--
|
317
|
+
-- Indexes for table `mailbox`
|
318
|
+
--
|
319
|
+
ALTER TABLE `mailbox`
|
320
|
+
ADD PRIMARY KEY (`username`),
|
321
|
+
ADD KEY `domain` (`domain`);
|
322
|
+
|
323
|
+
--
|
324
|
+
-- Indexes for table `quota`
|
325
|
+
--
|
326
|
+
ALTER TABLE `quota`
|
327
|
+
ADD PRIMARY KEY (`username`,`path`);
|
328
|
+
|
329
|
+
--
|
330
|
+
-- Indexes for table `quota2`
|
331
|
+
--
|
332
|
+
ALTER TABLE `quota2`
|
333
|
+
ADD PRIMARY KEY (`username`);
|
334
|
+
|
335
|
+
--
|
336
|
+
-- Indexes for table `vacation`
|
337
|
+
--
|
338
|
+
ALTER TABLE `vacation`
|
339
|
+
ADD PRIMARY KEY (`email`),
|
340
|
+
ADD KEY `email` (`email`);
|
341
|
+
|
342
|
+
--
|
343
|
+
-- Indexes for table `vacation_notification`
|
344
|
+
--
|
345
|
+
ALTER TABLE `vacation_notification`
|
346
|
+
ADD PRIMARY KEY (`on_vacation`,`notified`);
|
347
|
+
|
348
|
+
--
|
349
|
+
-- AUTO_INCREMENT for dumped tables
|
350
|
+
--
|
351
|
+
|
352
|
+
--
|
353
|
+
-- AUTO_INCREMENT for table `config`
|
354
|
+
--
|
355
|
+
ALTER TABLE `config`
|
356
|
+
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
|
357
|
+
|
358
|
+
--
|
359
|
+
-- AUTO_INCREMENT for table `fetchmail`
|
360
|
+
--
|
361
|
+
ALTER TABLE `fetchmail`
|
362
|
+
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
|
363
|
+
|
364
|
+
--
|
365
|
+
-- AUTO_INCREMENT for table `log`
|
366
|
+
--
|
367
|
+
ALTER TABLE `log`
|
368
|
+
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
369
|
+
|
370
|
+
--
|
371
|
+
-- Constraints for dumped tables
|
372
|
+
--
|
373
|
+
|
374
|
+
--
|
375
|
+
-- Constraints for table `vacation_notification`
|
376
|
+
--
|
377
|
+
ALTER TABLE `vacation_notification`
|
378
|
+
ADD CONSTRAINT `vacation_notification_pkey` FOREIGN KEY (`on_vacation`) REFERENCES `vacation` (`email`) ON DELETE CASCADE;
|
379
|
+
COMMIT;
|
380
|
+
|
381
|
+
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
382
|
+
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
383
|
+
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|