オープンソースのPHP製グループウェア
Open-source groupware system built with PHP
TeamSpace は、組織内の業務効率化を目的としたオールインワンのグループウェアシステムです。スケジュール管理、メッセージ、チャット、ワークフロー(稟議・申請)、タスク管理、掲示板、日報、ファイル管理、WEBデータベースなど、日常業務に必要な機能を網羅しています。
外部サービスへの依存がなく、自社サーバーやVPS上にセルフホストできるため、データの完全な管理が可能です。
- 利用者向けヘルプ:
/help - 管理者マニュアル:
/help/admin-manual - インストールマニュアル:
/help/install-manual
- Current public beta:
v0.9.0-beta.6
- Live Demo: https://groupware.yuus-program.com/
- GitHub Repository: https://github.com/Yuusuke9228/groupware
- Blog: https://www.yuus-program.com/
- Admin:
admin/demo1234 - User 1:
yamada/demo1234 - User 2:
tanaka/demo1234 - User 3:
suzuki/demo1234 - Demo data is reset periodically. Do not enter production data.
- OIDC / SAML 2.0 ログイン:
設定 > 認証・PWA・SCIM - SCIM 2.0 ベースURL:
https://<host>/api/scim/v2 - SAML SP Metadata:
https://<host>/auth/saml/metadata - SSO誤設定時の非常口ログイン:
https://<host>/login/local-admin
| ダッシュボード | スケジュール(月表示) | タスクボード |
|---|---|---|
![]() |
![]() |
![]() |
| ワークフロー | メッセージ | 掲示板 |
|---|---|---|
![]() |
![]() |
![]() |
- 日・週・月ビューでの個人スケジュール管理
- 組織単位でのスケジュール共有(組織 日・週・月ビュー)
- 参加者の管理と参加ステータス追跡
- Google Calendar / iCal 連携(ICSインポート・エクスポート)
- 外部カレンダー購読(iCal URL同期)
- 受信トレイ・送信済み・スター付きの管理
- 返信・全員に返信・転送
- 未読管理とスター機能
- 2名以上で自由にグループ作成(組織・権限制約なし)
- リアルタイム更新(短周期ポーリング)
- ファイル添付送信とダウンロード
- 既読表示(送信メッセージの既読人数)
- 未読バッジ表示(メニュー・モバイル)
- PWA / ブラウザ通知対応
- カテゴリ別の投稿管理
- コメント機能
- 組織内の情報共有に最適
- カスタマイズ可能な申請テンプレート
- ドラッグ&ドロップのフォームデザイナー
- 多段階承認経路の設定
- 代理承認機能
- 申請の統計情報ダッシュボード
- PDF / CSVエクスポート
- 個人・チーム・組織単位のタスクボード
- ドラッグ&ドロップでのカード移動
- チェックリスト、ラベル、コメント機能
- チームの作成と管理
- ノードベースの思考整理ボード(カンバンと分離)
- 無限キャンバス(パン / ズーム)
- Enter: 兄弟ノード追加、Tab: 子ノード追加
- 接続線、折りたたみ、Undo / Redo、自動レイアウト
- テンプレート: Blank / Mind Map / Flowchart / Brainstorm / Planning / Team Planning / Personal Thinking
- 親ノード付け替え、ノード複製
- 個人 / チーム / 組織での共有
- タスク連携(ノードからタスク参照)
- JSON / PDF / PNG 出力
- URL:
/visual-boards
- テンプレート + 構造化項目による日報作成
- リッチテキスト本文入力
- 活動ログ(時系列)入力
- 分析明細(案件 / 業種 / 商品 / プロセス)入力
- 月目標管理(予実比較)
- 添付ファイル、コメント、いいね
- 週間 / 月間 / タイムライン / 分析ビュー
- 分析結果のCSV出力
- フォルダ階層によるファイル管理
- バージョン管理(チェックアウト / チェックイン)
- ファイル単位のアクセス権限設定
- 承認リクエスト機能
- 大容量ファイル共有向けのアップロード/配布
- 公開リンク(ログイン不要)と限定リンク(ログイン必須)
- 共有リンク設定(有効期限 / パスワード / ダウンロード回数上限)
- 共有先のユーザー / 組織 / アドレス帳連絡先 / メールアドレス指定と通知(メールキュー連携)
- 共有リンク画面は対象ファイルのみを表示(専用導線)
- 発行済みリンクの無効化とファイル削除
- 管理者による容量ガバナンス(1ファイル / 全体 / ユーザー / 組織)
- 独自フィールド定義によるカスタムデータ管理
- GUIフォームビルダー(並び替え / セクション / 表示切替 / 必須設定)
- リレーション・ルックアップ機能
- 親子テーブル入力(ヘッダ + 明細)
- 保存ビュー(ユーザー / 組織 / 全体)
- 集計ビュー・グラフビュー(件数 / 合計 / 平均)
- CSV インポート・エクスポート
- レコード間の関連付け
- 管理者向けデモサンプル投入(売上・売上明細を含む)
- 連絡先情報の一元管理
- CSVインポートによる一括登録
- 会議室・備品などの施設管理
- 予約の作成・管理
- リアルタイム通知
- メール通知(SMTP / sendmail / PHP mail())
- 通知設定のカスタマイズ
- メール送信キュー処理
- PWA Push 通知(購読 / 解除 / テスト送信)
- ホーム画面追加・インストール対応(iOS/Android/PC)
manifest.json/service-worker.jsによるアプリ体験- オフライン時のフォールバック画面
- ブラウザ通知基盤(Web Push)連携
- 横断的な全文検索機能
- Google Calendar 連携
- iCal 形式でのカレンダー公開
- 外部カレンダー購読・同期
- CSV エクスポート
- SSO 連携(OIDC / SAML 2.0)
- SCIM 2.0 によるユーザープロビジョニング
- ユーザー管理(作成・編集・パスワード変更)
- 組織管理(階層構造対応)
- CSV一括インポート(ユーザー・組織・アドレス帳)
- システム設定(メール設定・通知設定)
- 認証・PWA・SCIM 設定
- 非常用ローカル管理者ログイン導線(SSO誤設定時の復旧)
- デモデータ管理(本日から3年分の補充 / 全再構築)
- モバイルフレンドリーなUI
| 項目 | 要件 |
|---|---|
| PHP | 8.1 以上 |
| MySQL | 5.7 以上 |
| Webサーバー | Apache(mod_rewrite 有効)または Nginx |
| Composer | 2.x |
# リポジトリをクローン
git clone https://github.com/Yuusuke9228/groupware.git
cd groupware
# 依存パッケージをインストール
composer install
# 設定ファイルをコピー
cp config/database_sample.php config/database.php
cp config/config_sample.php config/config.php
# データベース設定を編集
vi config/database.php
# データベースを作成・セットアップ
mysql -u root -p -e "CREATE DATABASE groupware CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
mysql -u root -p groupware < db/schema.sql
# Webサーバーの DocumentRoot を public/ に設定
# ブラウザでアクセス → admin / admin123 でログインgit clone https://github.com/Yuusuke9228/groupware.git
cd groupwarecomposer installcp config/database_sample.php config/database.php
cp config/config_sample.php config/config.phpconfig/database.php を編集し、お使いの環境に合わせて設定してください:
return [
'host' => 'localhost',
'dbname' => 'groupware',
'username' => 'your_db_user',
'password' => 'your_db_password',
'charset' => 'utf8mb4_general_ci',
'port' => 3306
];config/config.php を編集し、必要に応じて設定を変更してください:
return [
'app' => [
'name' => 'GroupWare',
'version' => 'v0.9.0-beta.6',
'timezone' => 'Asia/Tokyo',
'debug' => false, // 本番環境では false に設定
'url' => 'https://your-domain.com'
],
'auth' => [
'session_name' => 'gsession_user',
'session_lifetime' => 86400,
'remember_me_days' => 30
],
'upload' => [
'max_size' => 10485760, // 10MB
'allowed_extensions' => ['jpg','jpeg','png','gif','pdf','doc','docx','xls','xlsx','ppt','pptx']
]
];mysql -u root -p -e "CREATE DATABASE groupware CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
mysql -u root -p groupware < db/schema.sqlApache の場合:
<VirtualHost *:80>
ServerName groupware.example.com
DocumentRoot /path/to/groupware/public
<Directory /path/to/groupware/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>mod_rewrite が有効であることを確認してください:
sudo a2enmod rewrite
sudo systemctl restart apache2Nginx の場合:
server {
listen 80;
server_name groupware.example.com;
root /path/to/groupware/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}# 既存権限を壊さないため、必要最小限のみ設定
chmod 775 uploads exports public/uploads管理画面の「設定 > メール設定」から送信方式(SMTP / sendmail / PHP mail())を設定できます。
メール送信キューを処理するには、cronを設定してください:
# crontab -e
* * * * * php /path/to/groupware/scripts/process_email_queue.php
# デモサイト自動復旧(毎月1日 03:30)
30 3 1 * * php /path/to/groupware/scripts/rebuild_demo_data.php --mode=rebuild --years=3# 本日から3年分のデモデータを補充
php scripts/rebuild_demo_data.php --mode=refresh --years=3
# 全データをデモ用に再構築(破壊的)
php scripts/rebuild_demo_data.php --mode=rebuild --years=3Webインストーラーが利用可能な場合、ブラウザから
/installにアクセスして画面の指示に従ってください。
既存環境を更新する場合は、db/schema.sql を丸ごと再適用せず、db/upgrade_*.sql を新しい日付順に適用してください。
# 例: 直近の追加アップグレードを適用
mysql -u <user> -p <database> < db/upgrade_20260327_daily_report_structured.sql
mysql -u <user> -p <database> < db/upgrade_20260328_daily_report_advanced.sql
mysql -u <user> -p <database> < db/upgrade_20260328_fk_stability.sql
mysql -u <user> -p <database> < db/upgrade_20260328_webdatabase_nocode.sql
mysql -u <user> -p <database> < db/upgrade_20260401_file_checkout_repair.sql
mysql -u <user> -p <database> < db/upgrade_20260401_drive_module.sql適用前には必ず DB バックアップを取得してください。
| 項目 | 値 |
|---|---|
| ユーザー名 | admin |
| パスワード | admin123 |
重要: ログイン後、必ず管理者パスワードを変更してください。
環境変数による設定の上書きに対応しています。.env ファイルまたはサーバー環境変数で設定可能です。
| 環境変数 | 説明 | 例 |
|---|---|---|
GW_MAIL_TRANSPORT |
送信方式 | smtp, sendmail, mail |
GW_MAIL_FROM_EMAIL |
送信元メールアドレス | noreply@example.com |
GW_MAIL_FROM_NAME |
送信者名 | GroupWare |
GW_MAIL_REPLY_TO_EMAIL |
返信先アドレス | support@example.com |
| 環境変数 | 説明 | 例 |
|---|---|---|
GW_SMTP_HOST |
SMTPサーバー | smtp.gmail.com |
GW_SMTP_PORT |
ポート番号 | 587 |
GW_SMTP_SECURE |
暗号化方式 | tls, ssl |
GW_SMTP_AUTH |
SMTP認証 | true |
GW_SMTP_USERNAME |
SMTPユーザー名 | user@gmail.com |
GW_SMTP_PASSWORD |
SMTPパスワード | app-password |
GW_SMTP_TIMEOUT |
タイムアウト(秒) | 30 |
GW_SMTP_ALLOW_SELF_SIGNED |
自己署名証明書許可 | false |
| 環境変数 | 説明 | 例 |
|---|---|---|
GW_SENDMAIL_PATH |
sendmailパス | /usr/sbin/sendmail |
GW_APP_URL |
アプリケーションURL | https://groupware.example.com |
groupware/
├── config/ # 設定ファイル
├── Controllers/ # コントローラー
├── Core/ # コアライブラリ (Router, Auth 等)
├── db/ # データベーススキーマ
├── exports/ # エクスポートファイル出力先
├── Models/ # モデル
├── public/ # 公開ディレクトリ (DocumentRoot)
│ ├── index.php # エントリーポイント
│ ├── css/ # スタイルシート
│ ├── js/ # JavaScript
│ └── uploads/ # アップロードファイル
├── scripts/ # バッチスクリプト
├── uploads/ # ファイル管理用アップロードディレクトリ
└── views/ # ビューテンプレート
- ルート直下ファイルの監査結果:
docs/root-file-audit.md
composer test
# または
vendor/bin/phpunit主なユニットテスト:
tests/Unit/WebDatabaseValidationServiceTest.phptests/Unit/FilePermissionServiceTest.phptests/Unit/ScheduleDisplaySettingsTest.php
コントリビュートを歓迎します。詳細は CONTRIBUTING.md をご覧ください。
基本的な流れ:
- このリポジトリをForkする
- フィーチャーブランチを作成する (
git checkout -b feature/amazing-feature) - 変更をコミットする (
git commit -m 'Add amazing feature') - ブランチをPushする (
git push origin feature/amazing-feature) - Pull Requestを作成する
このプロジェクトは GNU General Public License v3.0 のもとで公開されています。
- 多言語対応(UI / Help / Docs)の段階的強化
- セルフホスト導入体験の改善
- Issue / Discussion / PR を中心としたコミュニティ運用
- 将来的な導入支援・マネージド提供の選択肢整備
- Yuusuke9228 - GitHub
このプロジェクトは以下のオープンソースライブラリを使用しています:





