Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.037USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.008SP
├── Own SP
0.635SP
└── Incoming Deleg
+4.373SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.635SP
Delegated Out
0.000SP
Delegation In
4.373SP
Effective Power
5.008SP
Reward SP (pending)
0.001SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "1032.697716 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7110.962090 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

nameegoto
id292449
rank949,062
reputation39687193
created2017-08-01T07:39:45
recovery_accountsteem
proxyNone
post_count2
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2017-08-01T13:23:39
last_root_post2017-08-01T13:23:39
last_vote_time2017-08-05T20:28:39
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares1032.697716 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7110.962090 VESTS
reward_vesting_balance2.064391 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2017-08-01T10:25:24
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 292449,
  "name": "egoto",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7797PS6hazrJTyJTCCoTLCTdUSnLCKakMEgLU9NnLDALi9B6TC",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6AvKiXPwYqUCNuJ1fL3uzJQso928oXU7ckaFovY4PkiAryUkKa",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5Qgy28ixQhQ4FfGTuGsjztm5pQEsZXcvsmC36SAxT4fMPTNBFz",
        1
      ]
    ]
  },
  "memo_key": "STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw",
  "json_metadata": "{\"profile\":{\"profile_image\":\"http://i.imgur.com/R5MSBHH.png?1\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"http://i.imgur.com/R5MSBHH.png?1\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2017-08-01T10:25:24",
  "created": "2017-08-01T07:39:45",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 2,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779061896
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779061896
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "2.064391 VESTS",
  "reward_vesting_steem": "0.001 STEEM",
  "vesting_shares": "1032.697716 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7110.962090 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 1,
  "posting_rewards": 0,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2017-08-01T13:23:39",
  "last_root_post": "2017-08-01T13:23:39",
  "last_vote_time": "2017-08-05T20:28:39",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 39687193,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 949062
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.373 SP to @egoto
2026/05/17 23:51:36
delegatorsteem
delegateeegoto
vesting shares7110.962090 VESTS
Transaction InfoBlock #106142979/Trx 2c77fa3e6df76bff7e0a671e8452f9f8a3f3cc31
View Raw JSON Data
{
  "trx_id": "2c77fa3e6df76bff7e0a671e8452f9f8a3f3cc31",
  "block": 106142979,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-17T23:51:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "7110.962090 VESTS"
    }
  ]
}
steemdelegated 2.705 SP to @egoto
2026/05/12 02:14:00
delegatorsteem
delegateeegoto
vesting shares4398.751685 VESTS
Transaction InfoBlock #105973783/Trx 873ee95e6fddd1371432bd000d2814087d243e97
View Raw JSON Data
{
  "trx_id": "873ee95e6fddd1371432bd000d2814087d243e97",
  "block": 105973783,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-12T02:14:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "4398.751685 VESTS"
    }
  ]
}
steemdelegated 4.381 SP to @egoto
2026/04/25 23:13:06
delegatorsteem
delegateeegoto
vesting shares7123.477846 VESTS
Transaction InfoBlock #105510640/Trx 07ab6ea22954e344060b77b1488ceebe08308128
View Raw JSON Data
{
  "trx_id": "07ab6ea22954e344060b77b1488ceebe08308128",
  "block": 105510640,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-25T23:13:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "7123.477846 VESTS"
    }
  ]
}
steemdelegated 2.731 SP to @egoto
2026/01/23 06:43:54
delegatorsteem
delegateeegoto
vesting shares4440.298504 VESTS
Transaction InfoBlock #102850526/Trx 210aa57b4fa66492865fb8d4c530057586da85ef
View Raw JSON Data
{
  "trx_id": "210aa57b4fa66492865fb8d4c530057586da85ef",
  "block": 102850526,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-23T06:43:54",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "4440.298504 VESTS"
    }
  ]
}
steemdelegated 2.832 SP to @egoto
2024/12/17 02:03:18
delegatorsteem
delegateeegoto
vesting shares4604.517701 VESTS
Transaction InfoBlock #91296944/Trx 9c92d30d1ed299b48ae9fe5866a5a3f65ea7c363
View Raw JSON Data
{
  "trx_id": "9c92d30d1ed299b48ae9fe5866a5a3f65ea7c363",
  "block": 91296944,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T02:03:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "4604.517701 VESTS"
    }
  ]
}
steemdelegated 2.936 SP to @egoto
2023/11/13 17:46:06
delegatorsteem
delegateeegoto
vesting shares4773.651233 VESTS
Transaction InfoBlock #79851147/Trx 2b886531d4f683dab90d2f5f5409c1aab4704d5a
View Raw JSON Data
{
  "trx_id": "2b886531d4f683dab90d2f5f5409c1aab4704d5a",
  "block": 79851147,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-13T17:46:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "4773.651233 VESTS"
    }
  ]
}
steemdelegated 4.742 SP to @egoto
2023/09/21 21:21:33
delegatorsteem
delegateeegoto
vesting shares7710.930019 VESTS
Transaction InfoBlock #78347263/Trx 7c9ad85d053a0e74b322c5e658cec9c35933c0bf
View Raw JSON Data
{
  "trx_id": "7c9ad85d053a0e74b322c5e658cec9c35933c0bf",
  "block": 78347263,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-21T21:21:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "7710.930019 VESTS"
    }
  ]
}
steemdelegated 4.878 SP to @egoto
2022/11/03 11:13:09
delegatorsteem
delegateeegoto
vesting shares7932.611457 VESTS
Transaction InfoBlock #69112683/Trx bab7e6fe7b92920649dc0e0d8b82eba387aaaa76
View Raw JSON Data
{
  "trx_id": "bab7e6fe7b92920649dc0e0d8b82eba387aaaa76",
  "block": 69112683,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T11:13:09",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "7932.611457 VESTS"
    }
  ]
}
steemdelegated 5.014 SP to @egoto
2022/01/17 10:31:21
delegatorsteem
delegateeegoto
vesting shares8153.144688 VESTS
Transaction InfoBlock #60808894/Trx 6fb4359c86a7368e3eb8871a3f8a343b41d061f0
View Raw JSON Data
{
  "trx_id": "6fb4359c86a7368e3eb8871a3f8a343b41d061f0",
  "block": 60808894,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T10:31:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8153.144688 VESTS"
    }
  ]
}
steemdelegated 5.127 SP to @egoto
2021/06/14 00:27:42
delegatorsteem
delegateeegoto
vesting shares8336.913346 VESTS
Transaction InfoBlock #54607305/Trx c309ea726bb9131e6b3ad39b90f639e797f593a2
View Raw JSON Data
{
  "trx_id": "c309ea726bb9131e6b3ad39b90f639e797f593a2",
  "block": 54607305,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-14T00:27:42",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8336.913346 VESTS"
    }
  ]
}
steemdelegated 5.242 SP to @egoto
2020/12/11 10:47:24
delegatorsteem
delegateeegoto
vesting shares8524.335320 VESTS
Transaction InfoBlock #49354784/Trx f60ab8ad399f5c03e0ca1650797b3be2b14f3a36
View Raw JSON Data
{
  "trx_id": "f60ab8ad399f5c03e0ca1650797b3be2b14f3a36",
  "block": 49354784,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T10:47:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8524.335320 VESTS"
    }
  ]
}
steemdelegated 1.176 SP to @egoto
2020/12/06 04:24:42
delegatorsteem
delegateeegoto
vesting shares1912.543513 VESTS
Transaction InfoBlock #49206352/Trx ee7396706ea71e84b0c380d3ffa7c50e2c89916e
View Raw JSON Data
{
  "trx_id": "ee7396706ea71e84b0c380d3ffa7c50e2c89916e",
  "block": 49206352,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T04:24:42",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.246 SP to @egoto
2020/12/05 14:25:36
delegatorsteem
delegateeegoto
vesting shares8530.543174 VESTS
Transaction InfoBlock #49189883/Trx 358bd8f5d54e89f01a76e238b6930ea779d9521e
View Raw JSON Data
{
  "trx_id": "358bd8f5d54e89f01a76e238b6930ea779d9521e",
  "block": 49189883,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T14:25:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8530.543174 VESTS"
    }
  ]
}
steemdelegated 1.181 SP to @egoto
2020/11/02 14:50:45
delegatorsteem
delegateeegoto
vesting shares1920.017158 VESTS
Transaction InfoBlock #48256865/Trx 1f484ac3d8f8551fd079be56b8814a09359b4715
View Raw JSON Data
{
  "trx_id": "1f484ac3d8f8551fd079be56b8814a09359b4715",
  "block": 48256865,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-02T14:50:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.371 SP to @egoto
2020/05/09 05:21:33
delegatorsteem
delegateeegoto
vesting shares8733.348533 VESTS
Transaction InfoBlock #43216589/Trx 4990d35515550dd6831b9a3072062156cb1adb51
View Raw JSON Data
{
  "trx_id": "4990d35515550dd6831b9a3072062156cb1adb51",
  "block": 43216589,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T05:21:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8733.348533 VESTS"
    }
  ]
}
steemdelegated 1.201 SP to @egoto
2020/05/08 08:54:06
delegatorsteem
delegateeegoto
vesting shares1953.311140 VESTS
Transaction InfoBlock #43192618/Trx 3f8c25d6a22303008938a94aacbaf8578154350c
View Raw JSON Data
{
  "trx_id": "3f8c25d6a22303008938a94aacbaf8578154350c",
  "block": 43192618,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T08:54:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
steemdelegated 5.379 SP to @egoto
2020/04/15 21:23:00
delegatorsteem
delegateeegoto
vesting shares8746.325952 VESTS
Transaction InfoBlock #42562290/Trx 6158e9198962a35fbcb0befc8b55210cdeb44e5b
View Raw JSON Data
{
  "trx_id": "6158e9198962a35fbcb0befc8b55210cdeb44e5b",
  "block": 42562290,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-04-15T21:23:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8746.325952 VESTS"
    }
  ]
}
2019/08/01 08:54:06
parent authoregoto
parent permlinkdevelopment-environment-with-puphpet
authorsteemitboard
permlinksteemitboard-notify-egoto-20190801t085406000z
title
bodyCongratulations @egoto! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@egoto/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@egoto) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=egoto)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #35167880/Trx 0708ba430e18ccf1c692caf27ea1f413def4c29d
View Raw JSON Data
{
  "trx_id": "0708ba430e18ccf1c692caf27ea1f413def4c29d",
  "block": 35167880,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-01T08:54:06",
  "op": [
    "comment",
    {
      "parent_author": "egoto",
      "parent_permlink": "development-environment-with-puphpet",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-egoto-20190801t085406000z",
      "title": "",
      "body": "Congratulations @egoto! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@egoto/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@egoto) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=egoto)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 5.499 SP to @egoto
2019/05/12 14:37:45
delegatorsteem
delegateeegoto
vesting shares8941.948757 VESTS
Transaction InfoBlock #32845158/Trx 8da62353682e21a3bc5b779d2f4ce01b89a64900
View Raw JSON Data
{
  "trx_id": "8da62353682e21a3bc5b779d2f4ce01b89a64900",
  "block": 32845158,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-05-12T14:37:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "8941.948757 VESTS"
    }
  ]
}
steemdelegated 5.622 SP to @egoto
2018/05/16 20:15:36
delegatorsteem
delegateeegoto
vesting shares9141.501192 VESTS
Transaction InfoBlock #22489813/Trx 81e9ca6ad0a971b197170919f0edc485a6c4b283
View Raw JSON Data
{
  "trx_id": "81e9ca6ad0a971b197170919f0edc485a6c4b283",
  "block": 22489813,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-05-16T20:15:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "9141.501192 VESTS"
    }
  ]
}
steemdelegated 18.260 SP to @egoto
2018/01/09 06:37:45
delegatorsteem
delegateeegoto
vesting shares29692.491576 VESTS
Transaction InfoBlock #18819555/Trx e839fd888fe9deed6a905efa1ae63deb17c91b9e
View Raw JSON Data
{
  "trx_id": "e839fd888fe9deed6a905efa1ae63deb17c91b9e",
  "block": 18819555,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-01-09T06:37:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "29692.491576 VESTS"
    }
  ]
}
2017/08/10 12:47:15
curatoregoto
reward2.064391 VESTS
comment authorsteemdevelopers
comment permlinksteem-developers-delegated-sp-fundraiser-for-educators-and-students
Transaction InfoBlock #14452867/Virtual Operation #25
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 14452867,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 25,
  "timestamp": "2017-08-10T12:47:15",
  "op": [
    "curation_reward",
    {
      "curator": "egoto",
      "reward": "2.064391 VESTS",
      "comment_author": "steemdevelopers",
      "comment_permlink": "steem-developers-delegated-sp-fundraiser-for-educators-and-students"
    }
  ]
}
2017/08/05 20:28:39
voteregoto
authorepicdesigns
permlinkwhy-you-should-never-have-to-explain-yourself
weight10000 (100.00%)
Transaction InfoBlock #14318231/Trx 88c7ba7c23d2a84b40331bae15dc174feeb24bd7
View Raw JSON Data
{
  "trx_id": "88c7ba7c23d2a84b40331bae15dc174feeb24bd7",
  "block": 14318231,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-05T20:28:39",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "epicdesigns",
      "permlink": "why-you-should-never-have-to-explain-yourself",
      "weight": 10000
    }
  ]
}
2017/08/04 08:23:03
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"iamnotageek","what":["blog"]}]
Transaction InfoBlock #14274966/Trx 807cdd7046c2f465ff6fabcc96d1b520c197eed0
View Raw JSON Data
{
  "trx_id": "807cdd7046c2f465ff6fabcc96d1b520c197eed0",
  "block": 14274966,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-04T08:23:03",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"iamnotageek\",\"what\":[\"blog\"]}]"
    }
  ]
}
steemdelegated 18.414 SP to @egoto
2017/08/04 04:25:51
delegatorsteem
delegateeegoto
vesting shares29943.302284 VESTS
Transaction InfoBlock #14270405/Trx 8791b8e7d24f3f174c5b6890f37fdb23a5ec968c
View Raw JSON Data
{
  "trx_id": "8791b8e7d24f3f174c5b6890f37fdb23a5ec968c",
  "block": 14270405,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-04T04:25:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "egoto",
      "vesting_shares": "29943.302284 VESTS"
    }
  ]
}
2017/08/03 14:39:21
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"mindover","what":["blog"]}]
Transaction InfoBlock #14253880/Trx 026628c022c8fce837e3cdac79aef9cbfd2f4ac9
View Raw JSON Data
{
  "trx_id": "026628c022c8fce837e3cdac79aef9cbfd2f4ac9",
  "block": 14253880,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-03T14:39:21",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"mindover\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/03 14:39:12
voteregoto
authormindover
permlinksteemit-for-dummies-like-me-everything-you-need-know-to-get-started
weight10000 (100.00%)
Transaction InfoBlock #14253877/Trx 84a9b965a16cdbaf96779e72856617b03203d268
View Raw JSON Data
{
  "trx_id": "84a9b965a16cdbaf96779e72856617b03203d268",
  "block": 14253877,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-03T14:39:12",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "mindover",
      "permlink": "steemit-for-dummies-like-me-everything-you-need-know-to-get-started",
      "weight": 10000
    }
  ]
}
2017/08/03 14:33:06
voteregoto
authorsteemdevelopers
permlinksteem-developers-delegated-sp-fundraiser-for-educators-and-students
weight10000 (100.00%)
Transaction InfoBlock #14253755/Trx 2e66e8f7b7c5da85e9d80ef44655dd6223e3d8b7
View Raw JSON Data
{
  "trx_id": "2e66e8f7b7c5da85e9d80ef44655dd6223e3d8b7",
  "block": 14253755,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-03T14:33:06",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "steemdevelopers",
      "permlink": "steem-developers-delegated-sp-fundraiser-for-educators-and-students",
      "weight": 10000
    }
  ]
}
2017/08/02 19:27:45
voteregoto
authordine77
permlinkspending-6-hour-time-at-hong-kong-airpot
weight10000 (100.00%)
Transaction InfoBlock #14230862/Trx 388d493c3e39748bfe35a1428c9b7ba18324945f
View Raw JSON Data
{
  "trx_id": "388d493c3e39748bfe35a1428c9b7ba18324945f",
  "block": 14230862,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-02T19:27:45",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "dine77",
      "permlink": "spending-6-hour-time-at-hong-kong-airpot",
      "weight": 10000
    }
  ]
}
2017/08/02 16:40:24
voteregoto
authorsteemdevelopers
permlinksteem-developers-learn-and-earn-become-a-developer-and-get-paid-to-goto-school
weight10000 (100.00%)
Transaction InfoBlock #14227518/Trx feacf6d6dbbf3d9cedf330995141b725475b4b31
View Raw JSON Data
{
  "trx_id": "feacf6d6dbbf3d9cedf330995141b725475b4b31",
  "block": 14227518,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-02T16:40:24",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "steemdevelopers",
      "permlink": "steem-developers-learn-and-earn-become-a-developer-and-get-paid-to-goto-school",
      "weight": 10000
    }
  ]
}
2017/08/02 14:29:09
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"steemdevelopers","what":["blog"]}]
Transaction InfoBlock #14224894/Trx bf444bd093b7edc340fae4156af0e45348601153
View Raw JSON Data
{
  "trx_id": "bf444bd093b7edc340fae4156af0e45348601153",
  "block": 14224894,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-02T14:29:09",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"steemdevelopers\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/02 14:28:24
voteregoto
authorsteemdevelopers
permlinksteem-developers-the-rewards-system-and-how-it-works-flowcharts
weight10000 (100.00%)
Transaction InfoBlock #14224879/Trx ae553898b6881897688d422e9007b1181da62637
View Raw JSON Data
{
  "trx_id": "ae553898b6881897688d422e9007b1181da62637",
  "block": 14224879,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-02T14:28:24",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "steemdevelopers",
      "permlink": "steem-developers-the-rewards-system-and-how-it-works-flowcharts",
      "weight": 10000
    }
  ]
}
2017/08/01 21:18:36
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"clutteredcode","what":["blog"]}]
Transaction InfoBlock #14204287/Trx 8f5a6dde2621714941cd9fb935e8ae63783780d4
View Raw JSON Data
{
  "trx_id": "8f5a6dde2621714941cd9fb935e8ae63783780d4",
  "block": 14204287,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T21:18:36",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"clutteredcode\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 20:57:30
voteregoto
authorwoz.software
permlinkhow-to-query-steemsql-in-f-a-functional-language-from-the-ml-family
weight10000 (100.00%)
Transaction InfoBlock #14203865/Trx 6ca8fba17c292966586187750d9be318c164a1ac
View Raw JSON Data
{
  "trx_id": "6ca8fba17c292966586187750d9be318c164a1ac",
  "block": 14203865,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T20:57:30",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "woz.software",
      "permlink": "how-to-query-steemsql-in-f-a-functional-language-from-the-ml-family",
      "weight": 10000
    }
  ]
}
2017/08/01 20:57:12
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"woz.software","what":["blog"]}]
Transaction InfoBlock #14203859/Trx b3c0426f8b36b097ef8406d50276138cabbe479b
View Raw JSON Data
{
  "trx_id": "b3c0426f8b36b097ef8406d50276138cabbe479b",
  "block": 14203859,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T20:57:12",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"woz.software\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 19:28:45
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"bitcoinparadise","what":["blog"]}]
Transaction InfoBlock #14202090/Trx 2ff61d0b7b42bec7ea32bcb01461abe9ba2ea086
View Raw JSON Data
{
  "trx_id": "2ff61d0b7b42bec7ea32bcb01461abe9ba2ea086",
  "block": 14202090,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T19:28:45",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"bitcoinparadise\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 19:19:06
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"crypticwyrm","what":["blog"]}]
Transaction InfoBlock #14201897/Trx d4e1c822150717b1c6071a3d3dc4d2d36680b876
View Raw JSON Data
{
  "trx_id": "d4e1c822150717b1c6071a3d3dc4d2d36680b876",
  "block": 14201897,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T19:19:06",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"crypticwyrm\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 19:18:36
voteregoto
authorcrypticwyrm
permlinkthe-best-tools-to-create-interactive-fiction-text-adventures-and-visual-novels-with-or-without-programming-knowledge
weight10000 (100.00%)
Transaction InfoBlock #14201887/Trx c0f177b74529eb036c05901ae45868d220a60106
View Raw JSON Data
{
  "trx_id": "c0f177b74529eb036c05901ae45868d220a60106",
  "block": 14201887,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T19:18:36",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "crypticwyrm",
      "permlink": "the-best-tools-to-create-interactive-fiction-text-adventures-and-visual-novels-with-or-without-programming-knowledge",
      "weight": 10000
    }
  ]
}
2017/08/01 19:08:33
voterbitcoinparadise
authoregoto
permlinkdevelopment-environment-with-puphpet
weight2 (0.02%)
Transaction InfoBlock #14201686/Trx f8c87f89851e772a5226eb6271812e9f27da457b
View Raw JSON Data
{
  "trx_id": "f8c87f89851e772a5226eb6271812e9f27da457b",
  "block": 14201686,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T19:08:33",
  "op": [
    "vote",
    {
      "voter": "bitcoinparadise",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 2
    }
  ]
}
2017/08/01 19:07:18
parent author
parent permlinkprogramming
authoregoto
permlinkdevelopment-environment-with-puphpet
titleDevelopment Environment with Puphpet
body@@ -6045,17 +6045,17 @@ ve chose -d +n followi
json metadata{"tags":["programming","php","vagrant","development","technology"],"image":["http://i.imgur.com/UwR9bbF.png","http://i.imgur.com/IUzeoFN.png","http://i.imgur.com/6EGoeuu.png","http://i.imgur.com/VKnMm2j.png","http://i.imgur.com/B8aSu82.png","http://i.imgur.com/UsbcWey.png","http://i.imgur.com/dFAlVOu.png","http://i.imgur.com/rFfKohR.png","http://i.imgur.com/lxWaxW8.png","http://i.imgur.com/wIQMxbq.png","http://i.imgur.com/QUonHGF.png","http://i.imgur.com/SXyu3n0.png","http://i.imgur.com/ssfnLYD.png","http://i.imgur.com/TXIiTKz.png"],"links":["https://puphpet.com/","http://vagrantup.com","http://puppetlabs.com/","https://www.virtualbox.org/wiki/Downloads","https://launchpad.net/~ondrej/+archive/ubuntu/php/","https://mariadb.org/","http://testapp.dev"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #14201661/Trx b2516a81b5ddbea982542da4ee3f8ed6da62c77a
View Raw JSON Data
{
  "trx_id": "b2516a81b5ddbea982542da4ee3f8ed6da62c77a",
  "block": 14201661,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T19:07:18",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "programming",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "title": "Development Environment with Puphpet",
      "body": "@@ -6045,17 +6045,17 @@\n ve chose\n-d\n+n\n  followi\n",
      "json_metadata": "{\"tags\":[\"programming\",\"php\",\"vagrant\",\"development\",\"technology\"],\"image\":[\"http://i.imgur.com/UwR9bbF.png\",\"http://i.imgur.com/IUzeoFN.png\",\"http://i.imgur.com/6EGoeuu.png\",\"http://i.imgur.com/VKnMm2j.png\",\"http://i.imgur.com/B8aSu82.png\",\"http://i.imgur.com/UsbcWey.png\",\"http://i.imgur.com/dFAlVOu.png\",\"http://i.imgur.com/rFfKohR.png\",\"http://i.imgur.com/lxWaxW8.png\",\"http://i.imgur.com/wIQMxbq.png\",\"http://i.imgur.com/QUonHGF.png\",\"http://i.imgur.com/SXyu3n0.png\",\"http://i.imgur.com/ssfnLYD.png\",\"http://i.imgur.com/TXIiTKz.png\"],\"links\":[\"https://puphpet.com/\",\"http://vagrantup.com\",\"http://puppetlabs.com/\",\"https://www.virtualbox.org/wiki/Downloads\",\"https://launchpad.net/~ondrej/+archive/ubuntu/php/\",\"https://mariadb.org/\",\"http://testapp.dev\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2017/08/01 18:01:33
voteregoto
authorunprovoked
permlinkwhy-i-love-writing
weight10000 (100.00%)
Transaction InfoBlock #14200346/Trx fd8364c03175500b81367e2f8974b921a87f8316
View Raw JSON Data
{
  "trx_id": "fd8364c03175500b81367e2f8974b921a87f8316",
  "block": 14200346,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T18:01:33",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "unprovoked",
      "permlink": "why-i-love-writing",
      "weight": 10000
    }
  ]
}
2017/08/01 17:59:45
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"unprovoked","what":["blog"]}]
Transaction InfoBlock #14200310/Trx dfa5557223af065027d8dd0a2583bc80282a5b21
View Raw JSON Data
{
  "trx_id": "dfa5557223af065027d8dd0a2583bc80282a5b21",
  "block": 14200310,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T17:59:45",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"unprovoked\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 17:56:12
voterunprovoked
authoregoto
permlinkdevelopment-environment-with-puphpet
weight300 (3.00%)
Transaction InfoBlock #14200239/Trx 43d19a9e59bd53436a968518ed375dbb29433c6a
View Raw JSON Data
{
  "trx_id": "43d19a9e59bd53436a968518ed375dbb29433c6a",
  "block": 14200239,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T17:56:12",
  "op": [
    "vote",
    {
      "voter": "unprovoked",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 300
    }
  ]
}
2017/08/01 17:54:03
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"robinhaney","what":["blog"]}]
Transaction InfoBlock #14200196/Trx 463269c155dc9561f1e1fd7190f7e5f226479098
View Raw JSON Data
{
  "trx_id": "463269c155dc9561f1e1fd7190f7e5f226479098",
  "block": 14200196,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T17:54:03",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"robinhaney\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 17:53:15
voteregoto
authorrobinhaney
permlinkmy-story-how-i-become-a-freelance-web-developer
weight10000 (100.00%)
Transaction InfoBlock #14200180/Trx b79d01a760dd125e6e9ff441e62bdc69961c5dde
View Raw JSON Data
{
  "trx_id": "b79d01a760dd125e6e9ff441e62bdc69961c5dde",
  "block": 14200180,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T17:53:15",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "robinhaney",
      "permlink": "my-story-how-i-become-a-freelance-web-developer",
      "weight": 10000
    }
  ]
}
2017/08/01 17:50:45
parent author
parent permlinkprogramming
authoregoto
permlinkdevelopment-environment-with-puphpet
titleDevelopment Environment with Puphpet
body@@ -20734,19 +20734,18 @@ edit it -all +or put it
json metadata{"tags":["programming","php","vagrant","development","technology"],"image":["http://i.imgur.com/UwR9bbF.png","http://i.imgur.com/IUzeoFN.png","http://i.imgur.com/6EGoeuu.png","http://i.imgur.com/VKnMm2j.png","http://i.imgur.com/B8aSu82.png","http://i.imgur.com/UsbcWey.png","http://i.imgur.com/dFAlVOu.png","http://i.imgur.com/rFfKohR.png","http://i.imgur.com/lxWaxW8.png","http://i.imgur.com/wIQMxbq.png","http://i.imgur.com/QUonHGF.png","http://i.imgur.com/SXyu3n0.png","http://i.imgur.com/ssfnLYD.png","http://i.imgur.com/TXIiTKz.png"],"links":["https://puphpet.com/","http://vagrantup.com","http://puppetlabs.com/","https://www.virtualbox.org/wiki/Downloads","https://launchpad.net/~ondrej/+archive/ubuntu/php/","https://mariadb.org/","http://testapp.dev"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #14200130/Trx d897de9f451159669d85d1ed946540a8be798168
View Raw JSON Data
{
  "trx_id": "d897de9f451159669d85d1ed946540a8be798168",
  "block": 14200130,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T17:50:45",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "programming",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "title": "Development Environment with Puphpet",
      "body": "@@ -20734,19 +20734,18 @@\n edit it \n-all\n+or\n  put it \n",
      "json_metadata": "{\"tags\":[\"programming\",\"php\",\"vagrant\",\"development\",\"technology\"],\"image\":[\"http://i.imgur.com/UwR9bbF.png\",\"http://i.imgur.com/IUzeoFN.png\",\"http://i.imgur.com/6EGoeuu.png\",\"http://i.imgur.com/VKnMm2j.png\",\"http://i.imgur.com/B8aSu82.png\",\"http://i.imgur.com/UsbcWey.png\",\"http://i.imgur.com/dFAlVOu.png\",\"http://i.imgur.com/rFfKohR.png\",\"http://i.imgur.com/lxWaxW8.png\",\"http://i.imgur.com/wIQMxbq.png\",\"http://i.imgur.com/QUonHGF.png\",\"http://i.imgur.com/SXyu3n0.png\",\"http://i.imgur.com/ssfnLYD.png\",\"http://i.imgur.com/TXIiTKz.png\"],\"links\":[\"https://puphpet.com/\",\"http://vagrantup.com\",\"http://puppetlabs.com/\",\"https://www.virtualbox.org/wiki/Downloads\",\"https://launchpad.net/~ondrej/+archive/ubuntu/php/\",\"https://mariadb.org/\",\"http://testapp.dev\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
egotofollowed @egota
2017/08/01 15:15:27
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"egota","what":["blog"]}]
Transaction InfoBlock #14197025/Trx 416624c8f8963cab3bce5860bd792035fec6e679
View Raw JSON Data
{
  "trx_id": "416624c8f8963cab3bce5860bd792035fec6e679",
  "block": 14197025,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T15:15:27",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"egota\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 15:02:30
voteregota
authoregoto
permlinkdevelopment-environment-with-puphpet
weight10000 (100.00%)
Transaction InfoBlock #14196766/Trx 0d522fe53ddef4c64403365f71445dec1ebc4cbc
View Raw JSON Data
{
  "trx_id": "0d522fe53ddef4c64403365f71445dec1ebc4cbc",
  "block": 14196766,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T15:02:30",
  "op": [
    "vote",
    {
      "voter": "egota",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 10000
    }
  ]
}
egotofollowed @cristi
2017/08/01 14:12:30
required auths[]
required posting auths["egoto"]
idfollow
json["follow",{"follower":"egoto","following":"cristi","what":["blog"]}]
Transaction InfoBlock #14195766/Trx c93e45563dabdfb0dc7cc9aa6098830e205e5aeb
View Raw JSON Data
{
  "trx_id": "c93e45563dabdfb0dc7cc9aa6098830e205e5aeb",
  "block": 14195766,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T14:12:30",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "egoto"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"egoto\",\"following\":\"cristi\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/08/01 14:01:09
parent author
parent permlinkprogramming
authoregoto
permlinkdevelopment-environment-with-puphpet
titleDevelopment Environment with Puphpet
body# Development Environment with Puphpet ## General I've been using PHP and the LAMP stack as my main environment since 2009. At the beginning of every project I had same issues related to a VM preparation. I found several tools on the market which I tested: Vagrant, Chef, Ansible, Puppet - these all are great and help prepare the development environment automatization. Today, I want to show a helpful tool (esspecialy from the PHP developer point of view): [Puphpet](https://puphpet.com/) Puphpet is a configurator for [Vagrant](http://vagrantup.com) and [Puppet](http://puppetlabs.com/). It prepares a package with all necessary files to run a new virtual machine with all required components by a PHP application. ![Puphpet website preview](http://i.imgur.com/UwR9bbF.png) In short, Puphpet helps to prepare a local development environment without detailed knowledge about Vagrant and Puppet. ## Configuration The following example shows how to run a PHP application based on the Symfony framework. The app uses LAMP. ### Requirements You need install [Vagrant](http://vagrantup.com) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) to finish that example. ### Puphpet Creator #### General options Go to the <https://puphpet.com/> website and click the green button. ![Get started](http://i.imgur.com/IUzeoFN.png) On the first step, I chose the **Virtualbox** provider (you can use VmWare solutions as well) and the **Ubuntu Xenial 16.04 LTS x64** operating system. ![Provider and OS](http://i.imgur.com/6EGoeuu.png) Now is the time to set machines. I need an only one machine in the example, but that configurator gives us the possibility to specify as many as we need. To create more advanced configuration we can add more machines. The case would look like below: 1. I need an e-commerce system 2. I need a PIM solution 3. In the configurator, I can create to separated machines to test integrations between those etc. Have a look at the following picture: ![Machines setup](http://i.imgur.com/VKnMm2j.png) The first and the second input specify identification. It doesn't really matter now, you can fill as you like. **Ip Address** input specifies an address which we can use by ssh or http to connect the new VM. In this form are also two values responsible for the memory amount (assigned to the VM) and a number of CPU's assigned to the machine (no worries you can change it later). A crucial step in the configuration process is setting-up shared folders. I want to share the `/var/www` directory between the host and VM. Files used by the application I will put into the `../www` directory. Also, I'd like to share `/vagrant` folder with my local machine. The directory will contain all data from the puphpet project directory. At the end I will see php application files in `/var/www` and puphpet application files in the `/vagrant` location. To share files between my local system (in my case it's MacOs) and the Virtual Machine environment (Ubuntu) I used shared folders option, like below. ![www directory](http://i.imgur.com/B8aSu82.png) ![vagrant directory](http://i.imgur.com/UsbcWey.png) #### Packages What is amazing, Puphpet has a packages configurator. Let's say that we need several packages installed on our VM, you can update that list also after we finish the configurator. To run my app I need following packages * **wkhtmltopdf** - my app would use it to generate pdf documents based on website views * htop, vim * zip *Note that you don't have to specify any php extensions here, there is a step later which does it.* ![packages setup](http://i.imgur.com/dFAlVOu.png) #### Users and Groups The netx step precise groups and users created in the VM. I need an only one user named: *testapp*. See the picture below to find how to make it. ![Users and Groups](http://i.imgur.com/rFfKohR.png) #### Cron jobs I missed steps Locale, Firewall and Resolv in that usage showcase (left default values) adn went directly to the Cron Jobs step. The cron job configurator defines a scheduler for scripts available in the VM. I know that `/var/www` directory will be shared with my `../www` folder, therefore I can specify a script run automatically every second hour. ![Cron job setup](http://i.imgur.com/lxWaxW8.png) #### Apache Installation Now I want to configure the apache instance (look that you can choose Nginx if you prefer). For the example needs I add the only one host, let's say that I want to run my application using the `http://testapp.dev` address and I put my public app file into the `/var/www/testapp/web` directory. ![Apache installation](http://i.imgur.com/wIQMxbq.png) And basically, that's it - it will create all necessary file to tun the host. What is nice, vagrant takes care of the `/etc/hosts/` file update. #### PHP Configuration Here we're able to specify the php version and as I've mentioned before - php extensions. I added few modules required by my app. Find all available php modules here: <https://launchpad.net/~ondrej/+archive/ubuntu/php/> Here I also specified `php-fpm` settings, actually I used the default values but here is the right place to change it. At the end, I also checked the composer installation to improve the automatization process. ![Install php](http://i.imgur.com/QUonHGF.png) #### Mysql / Mariadb The last step I'm going to use is the database setup. I want to create an initial database used by my app using [Mariadb](https://mariadb.org/) (a MySql fork). ![Mariadb](http://i.imgur.com/SXyu3n0.png) #### Other Steps and Download Of course, there are a lot of steps you can configure like: **Solr**, **Redis** and so on but now is enough to make a test application based on that configuration. Go to the last step: *Download Your Customized Archive*. Here is the place where we can download the config puphpet module file or all projects files. Let's click on the green button ![Download archive](http://i.imgur.com/ssfnLYD.png) And create somewhere two folders. I've chosed following paths: * `~/testapp/vagrant` * `~/testapp/www` Unpack all downloaded file into the `testapp/vagrant` directory. #### Config.yaml The only one file generated by the configurator is located in the `vagrant/puphpet/config.yaml` path. Our file should look like below: ```yaml vagrantfile: target: local vm: provider: local: box: puphpet/ubuntu1604-x64 box_url: 'false' box_version: '0' chosen_virtualizer: virtualbox virtualizers: virtualbox: modifyvm: natdnshostresolver1: false showgui: 0 vmware: numvcpus: 1 parallels: linked_clone: 0 check_guest_tools: 0 update_guest_tools: 0 machines: vflm_k4itnhhid5s4: id: machine1 hostname: machine1.puphpet network: private_network: 192.168.56.102 forwarded_port: vflmnfp_j24v5o08cywg: host: '6637' guest: '22' memory: '2048' cpus: '4' provision: puppet: manifests_path: puphpet/puppet/manifests module_path: - puphpet/puppet/modules - puphpet/puppet/manifests options: - '--verbose' - '--hiera_config /vagrant/puphpet/puppet/hiera.yaml' synced_folder: vflsf_8wdfqwrda380: owner: www-data group: www-data source: ./ target: /vagrant sync_type: nfs smb: smb_host: '' smb_username: '' smb_password: '' mount_options: dir_mode: '0775' file_mode: '0664' rsync: args: - '--verbose' - '--archive' - '-z' exclude: - .vagrant/ - .git/ auto: 'true' vflsf_20wd8du0kjef: owner: www-data group: www-data source: ../www target: /var/www sync_type: nfs smb: smb_host: '' smb_username: '' smb_password: '' mount_options: dir_mode: '0775' file_mode: '0664' rsync: args: - '--verbose' - '--archive' - '-z' exclude: - .vagrant/ - .git/ auto: 'true' usable_port_range: start: 10200 stop: 10500 post_up_message: '' ssh: host: 'false' port: 'false' private_key_path: 'false' username: vagrant guest_port: 'false' keep_alive: '1' forward_agent: 'false' forward_x11: 'false' shell: 'bash -l' insert_key: 'false' vagrant: host: detect proxy: http: '' https: '' ftp: '' no_proxy: '' server: install: '1' packages: - vim - htop - wkhtmltopdf - zip users_groups: install: '1' groups: - testapp users: - '{testapp}{testapp}' locale: install: '1' settings: default_locale: en_US.UTF-8 locales: - en_GB.UTF-8 - en_US.UTF-8 timezone: UTC firewall: install: '1' rules: { } resolv: install: '1' nameservers: - 8.8.8.8 - 8.8.4.4 domainname: '' searchpath: { } cron: install: '1' jobs: cj_prs7zkvw7g1b: name: 'testapp jobs' user: vagrant command: 'php /var/www//testapp/cron.php > /dev/null' minute: '1' hour: '*/2' weekday: '*' month: '*' monthday: '' nginx: install: '0' settings: version: present default_vhost: 1 proxy_buffers: '4 256k' proxy_buffer_size: 128k proxy_connect_timeout: 600s proxy_send_timeout: 600s proxy_read_timeout: 600s names_hash_bucket_size: 128 upstreams: { } vhosts: nxv_n087wiye8ku9: server_name: awesome.dev server_aliases: - www.awesome.dev www_root: /var/www/awesome listen_port: '80' client_max_body_size: 1m ssl: '0' locations: nxvl_ffz4010gqxpk: www_root: /var/www/awesome/web location: / autoindex: 'off' internal: 'false' index_files: - index.html - index.php - app.php try_files: - $uri - $uri/ - /index.php$is_args$args - /app.php$is_args$args fastcgi: '' fastcgi_index: '' fastcgi_split_path: '' proxy: '' proxy_redirect: '' nxvl_ekxxfmbtwfxp: www_root: /var/www/awesome/web location: '~ ^/(app_dev|config)\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /app_dev.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: app_dev.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' - 'APP_ENV dev' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' nxvl_kiz7c855rr19: www_root: /var/www/awesome/web location: '~ ^/index\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /index.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: index.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' nxvl_4x0fk1jrwczd: www_root: /var/www/awesome/web location: '~ ^/app\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /app.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: app.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' - 'APP_ENV prod' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' proxies: { } apache: install: '1' settings: version: 2.4 user: www-data group: www-data default_vhost: true manage_user: false manage_group: false sendfile: 0 modules: - proxy_fcgi - rewrite vhosts: av_ds7c9tnjwhe7: servername: testapp.dev docroot: /var/www/testapp/web port: '80' setenvif: - 'Authorization "(.*)" HTTP_AUTHORIZATION=$1' custom_fragment: '' ssl: '0' ssl_cert: LETSENCRYPT ssl_key: LETSENCRYPT ssl_chain: LETSENCRYPT ssl_certs_dir: LETSENCRYPT ssl_protocol: '' ssl_cipher: '' directories: avd_rt2ki1ql2fu5: path: /var/www/testapp/web directoryindex: 'index.php app.dev app.php' options: - Indexes - FollowSymlinks - MultiViews allow_override: - All require: - 'all granted' custom_fragment: '' provider: directory files_match: avfm_v71rd527gjtf: path: (app_dev|config)\.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' setenv: - 'APP_ENV dev' custom_fragment: '' provider: filesmatch avfm_qy6m6xg433l6: path: app\.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' setenv: - 'APP_ENV prod' custom_fragment: '' provider: filesmatch avfm_cb8wrbi2n6zb: path: \.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' custom_fragment: '' provider: filesmatch letsencrypt: install: '1' settings: email: '' webserver_service: '' domains: { } php: install: '1' settings: version: '7.1' modules: php: - cli - intl - xml - curl - bz2 - mysql - geoip pear: { } pecl: { } ini: display_errors: 'On' error_reporting: '-1' session.save_path: /var/lib/php/session date.timezone: UTC fpm_ini: error_log: /var/log/php-fpm.log fpm_pools: phpfp_ebvr4hi3kq17: ini: prefix: www listen: '127.0.0.1:9000' security.limit_extensions: .php user: www-user group: www-data composer: '1' composer_home: '' xdebug: install: '1' settings: xdebug.default_enable: '1' xdebug.remote_autostart: '0' xdebug.remote_connect_back: '1' xdebug.remote_enable: '1' xdebug.remote_handler: dbgp xdebug.remote_port: '9000' blackfire: install: '0' settings: server_id: '' server_token: '' agent: http_proxy: '' https_proxy: '' log_file: stderr log_level: '1' php: agent_timeout: '0.25' log_file: '' log_level: '1' xhprof: install: '0' wpcli: install: '0' version: v1.1.0 drush: install: '0' version: 8.0.5 ruby: install: '1' versions: rv_fgahfoxuxm8m: default: '1' bundler: '1' version: 2.3.1 gems: - [email protected] - [email protected] - [email protected] python: install: '1' packages: { } versions: { } nodejs: install: '0' settings: version: '6' npm_packages: { } mariadb: install: '1' settings: version: '10.1' root_password: '123' override_options: { } users: mariadbnu_9ujhdpfj2d60: name: testapp password: '123' databases: mariadbnd_6bxe69ouot9n: name: testapp sql: '' grants: mariadbng_z4drxt7vpk11: user: testapp table: '*.*' privileges: - ALL mysql: install: '0' settings: version: '5.7' root_password: '123' override_options: { } users: mysqlnu_74n6vlw5x1vr: name: dbuser password: '123' databases: mysqlnd_w1gyqiltk87y: name: dbname sql: '' grants: mysqlng_4nlv2f7bql9c: user: dbuser table: '*.*' privileges: - ALL postgresql: install: '0' settings: global: encoding: UTF8 version: '9.6' server: postgres_password: '123' databases: { } users: { } grants: { } mongodb: install: '0' settings: bind_ip: 127.0.0.1 port: '27017' globals: version: 2.6.0 databases: { } redis: install: '0' settings: port: '6379' sqlite: install: '0' databases: { } mailhog: install: '0' settings: smtp_ip: 0.0.0.0 smtp_port: 1025 http_ip: 0.0.0.0 http_port: '8025' path: /usr/local/bin/mailhog beanstalkd: install: '0' settings: listenaddress: 0.0.0.0 listenport: '11300' maxjobsize: '65535' maxconnections: '1024' binlogdir: /var/lib/beanstalkd/binlog binlogfsync: null binlogsize: '10485760' beanstalk_console: 0 rabbitmq: install: '0' settings: port: '5672' users: { } vhosts: { } plugins: { } elastic_search: install: '0' settings: version: 2.3.1 java_install: true instances: esi_299dbdf64vje: name: es-01 solr: install: '0' settings: version: 5.5.2 port: '8984' ``` As you probably have already realized, the configurator is just a gui for the generated file. If you need change something just edit it all put it again into the <https://puphpet.com/> (drag & drop works) to load values again and add something. ## Run the Machine To run the machine go to the `vagrant` using a terminal and use the `vagrant up` command. Meantime when vagrant is running the VM put someting into the `www/testapp/web/index.php` location. I added the following code: ```php <?php phpinfo(); ``` To check if machine is working properly use `vagrant status`. To connect by ssh use `vagrant ssh`. To check if everything has been resolved properly so far just go to the <http://testapp.dev>. You should see the phpinfo page like that: ![Phpinfo](http://i.imgur.com/TXIiTKz.png) I hope you will enjoy the tool as much as I do. Next time I will show how to extend Puppet by new instructions - I will deploy my application using the configuration I created here. Bests!
json metadata{"tags":["programming","php","vagrant","development","technology"],"image":["http://i.imgur.com/UwR9bbF.png","http://i.imgur.com/IUzeoFN.png","http://i.imgur.com/6EGoeuu.png","http://i.imgur.com/VKnMm2j.png","http://i.imgur.com/B8aSu82.png","http://i.imgur.com/UsbcWey.png","http://i.imgur.com/dFAlVOu.png","http://i.imgur.com/rFfKohR.png","http://i.imgur.com/lxWaxW8.png","http://i.imgur.com/wIQMxbq.png","http://i.imgur.com/QUonHGF.png","http://i.imgur.com/SXyu3n0.png","http://i.imgur.com/ssfnLYD.png","http://i.imgur.com/TXIiTKz.png"],"links":["https://puphpet.com/","http://vagrantup.com","http://puppetlabs.com/","https://www.virtualbox.org/wiki/Downloads","https://launchpad.net/~ondrej/+archive/ubuntu/php/","https://mariadb.org/","http://testapp.dev"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #14195540/Trx 78de868840fbe2e9838bd19fce0e169861ab3925
View Raw JSON Data
{
  "trx_id": "78de868840fbe2e9838bd19fce0e169861ab3925",
  "block": 14195540,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T14:01:09",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "programming",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "title": "Development Environment with Puphpet",
      "body": "# Development Environment with Puphpet\n\n## General\n\nI've been using PHP and the LAMP stack as my main environment since 2009.  \nAt the beginning of every project I had same issues related to a VM preparation.\n\nI found several tools on the market which I tested: Vagrant, Chef, Ansible, Puppet - these all are great and help prepare the development environment automatization. \n\nToday, I want to show a helpful tool (esspecialy from the PHP developer point of view): [Puphpet](https://puphpet.com/)  \nPuphpet is a configurator for [Vagrant](http://vagrantup.com) and [Puppet](http://puppetlabs.com/). It prepares a package with all necessary files to run a new virtual machine with all required components by a PHP application.\n\n![Puphpet website preview](http://i.imgur.com/UwR9bbF.png)\n\nIn short, Puphpet helps to prepare a local development environment without detailed knowledge about Vagrant and Puppet.\n\n## Configuration\n\nThe following example shows how to run a PHP application based on the Symfony framework.  \nThe app uses LAMP.\n\n### Requirements\n\nYou need install [Vagrant](http://vagrantup.com) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) to finish that example.\n\n### Puphpet Creator\n\n#### General options\n\nGo to the <https://puphpet.com/> website and click the green button.\n\n![Get started](http://i.imgur.com/IUzeoFN.png)\n\n \nOn the first step, I chose the **Virtualbox** provider (you can use VmWare solutions as well) and the **Ubuntu Xenial 16.04 LTS x64** operating system.\n\n![Provider and OS](http://i.imgur.com/6EGoeuu.png)\n\nNow is the time to set machines. I need an only one machine in the example, but that configurator gives us the possibility to specify as many as we need.  \nTo create more advanced configuration we can add more machines. The case would look like below:\n1. I need an e-commerce system\n2. I need a PIM solution\n3. In the configurator, I can create to separated machines to test integrations between those etc. \n\nHave a look at the following picture:\n\n![Machines setup](http://i.imgur.com/VKnMm2j.png)\n\nThe first and the second input specify identification. It doesn't really matter now, you can fill as you like.  **Ip Address** input specifies an address which we can use by ssh or http to connect the new VM.  \nIn this form are also two values responsible for the memory amount (assigned to the VM) and a number of CPU's assigned to the machine (no worries you can change it later).\n\nA crucial step in the configuration process is setting-up shared folders. \nI want to share the `/var/www` directory between the host and VM.  \nFiles used by the application I will put into the `../www` directory. Also, I'd like to share `/vagrant` folder with my local machine. The directory will contain all data from the puphpet project directory.  \nAt the end I will see php application files in `/var/www` and puphpet application files in the `/vagrant` location.\n\nTo share files between my local system (in my case it's MacOs) and the Virtual Machine environment (Ubuntu) I used shared folders option, like below.\n\n![www directory](http://i.imgur.com/B8aSu82.png)\n\n![vagrant directory](http://i.imgur.com/UsbcWey.png)\n\n#### Packages\n\nWhat is amazing, Puphpet has a packages configurator.  \nLet's say that we need several packages installed on our VM, you can update that list also after we finish the configurator.  \nTo run my app I need following packages\n* **wkhtmltopdf** - my app would use it to generate pdf documents based on website views\n* htop, vim\n* zip\n\n*Note that you don't have to specify any php extensions here, there is a step later which does it.*\n\n![packages setup](http://i.imgur.com/dFAlVOu.png)\n\n#### Users and Groups\n\nThe netx step precise groups and users created in the VM. \nI need an only one user named: *testapp*. See the picture below to find how to make it.\n\n![Users and Groups](http://i.imgur.com/rFfKohR.png)\n\n#### Cron jobs\n\nI missed steps Locale, Firewall and Resolv in that usage showcase (left default values) adn went directly to the Cron Jobs step. \n\nThe cron job configurator defines a scheduler for scripts available in the VM.  \nI know that `/var/www` directory will be shared with my `../www` folder, therefore I can specify a script run automatically every second hour.\n\n![Cron job setup](http://i.imgur.com/lxWaxW8.png)\n\n\n#### Apache Installation\n\nNow I want to configure the apache instance (look that you can choose Nginx if you prefer).  \n\nFor the example needs I add the only one host, let's say that I want to run my application using the `http://testapp.dev` address and I put my public app file into the `/var/www/testapp/web` directory.\n\n![Apache installation](http://i.imgur.com/wIQMxbq.png)\n\nAnd basically, that's it - it will create all necessary file to tun the host. What is nice, vagrant takes care of the `/etc/hosts/` file update.\n\n#### PHP Configuration\n\nHere we're able to specify the php version and as I've mentioned before - php extensions.  \nI added few modules required by my app.  \nFind all available php modules here: <https://launchpad.net/~ondrej/+archive/ubuntu/php/>\n\nHere I also specified `php-fpm` settings, actually I used the default values but here is the right place to change it. At the end, I also checked the composer installation to improve the automatization process.\n\n![Install php](http://i.imgur.com/QUonHGF.png)\n\n#### Mysql / Mariadb\n\nThe last step I'm going to use is the database setup.  \nI want to create an initial database used by my app using [Mariadb](https://mariadb.org/) (a MySql fork).\n\n![Mariadb](http://i.imgur.com/SXyu3n0.png)\n\n#### Other Steps and Download\n\nOf course, there are a lot of steps you can configure like: **Solr**, **Redis** and so on but now is enough to make a test application based on that configuration. Go to the last step: *Download Your Customized Archive*.\n\nHere is the place where we can download the config puphpet module file or all projects files.\nLet's click on the green button\n\n![Download archive](http://i.imgur.com/ssfnLYD.png)\n\nAnd create somewhere two folders. I've chosed following paths:\n\n* `~/testapp/vagrant`\n* `~/testapp/www`\n\nUnpack all downloaded file into the `testapp/vagrant` directory.\n\n#### Config.yaml\n\nThe only one file generated by the configurator is located in the `vagrant/puphpet/config.yaml` path.  \nOur file should look like below:\n\n```yaml\nvagrantfile:\n    target: local\n    vm:\n        provider:\n            local:\n                box: puphpet/ubuntu1604-x64\n                box_url: 'false'\n                box_version: '0'\n                chosen_virtualizer: virtualbox\n                virtualizers:\n                    virtualbox:\n                        modifyvm:\n                            natdnshostresolver1: false\n                        showgui: 0\n                    vmware:\n                        numvcpus: 1\n                    parallels:\n                        linked_clone: 0\n                        check_guest_tools: 0\n                        update_guest_tools: 0\n                machines:\n                    vflm_k4itnhhid5s4:\n                        id: machine1\n                        hostname: machine1.puphpet\n                        network:\n                            private_network: 192.168.56.102\n                            forwarded_port:\n                                vflmnfp_j24v5o08cywg:\n                                    host: '6637'\n                                    guest: '22'\n                        memory: '2048'\n                        cpus: '4'\n        provision:\n            puppet:\n                manifests_path: puphpet/puppet/manifests\n                module_path:\n                    - puphpet/puppet/modules\n                    - puphpet/puppet/manifests\n                options:\n                    - '--verbose'\n                    - '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'\n        synced_folder:\n            vflsf_8wdfqwrda380:\n                owner: www-data\n                group: www-data\n                source: ./\n                target: /vagrant\n                sync_type: nfs\n                smb:\n                    smb_host: ''\n                    smb_username: ''\n                    smb_password: ''\n                    mount_options:\n                        dir_mode: '0775'\n                        file_mode: '0664'\n                rsync:\n                    args:\n                        - '--verbose'\n                        - '--archive'\n                        - '-z'\n                    exclude:\n                        - .vagrant/\n                        - .git/\n                    auto: 'true'\n            vflsf_20wd8du0kjef:\n                owner: www-data\n                group: www-data\n                source: ../www\n                target: /var/www\n                sync_type: nfs\n                smb:\n                    smb_host: ''\n                    smb_username: ''\n                    smb_password: ''\n                    mount_options:\n                        dir_mode: '0775'\n                        file_mode: '0664'\n                rsync:\n                    args:\n                        - '--verbose'\n                        - '--archive'\n                        - '-z'\n                    exclude:\n                        - .vagrant/\n                        - .git/\n                    auto: 'true'\n        usable_port_range:\n            start: 10200\n            stop: 10500\n        post_up_message: ''\n    ssh:\n        host: 'false'\n        port: 'false'\n        private_key_path: 'false'\n        username: vagrant\n        guest_port: 'false'\n        keep_alive: '1'\n        forward_agent: 'false'\n        forward_x11: 'false'\n        shell: 'bash -l'\n        insert_key: 'false'\n    vagrant:\n        host: detect\n    proxy:\n        http: ''\n        https: ''\n        ftp: ''\n        no_proxy: ''\nserver:\n    install: '1'\n    packages:\n        - vim\n        - htop\n        - wkhtmltopdf\n        - zip\nusers_groups:\n    install: '1'\n    groups:\n        - testapp\n    users:\n        - '{testapp}{testapp}'\nlocale:\n    install: '1'\n    settings:\n        default_locale: en_US.UTF-8\n        locales:\n            - en_GB.UTF-8\n            - en_US.UTF-8\n        timezone: UTC\nfirewall:\n    install: '1'\n    rules: {  }\nresolv:\n    install: '1'\n    nameservers:\n        - 8.8.8.8\n        - 8.8.4.4\n    domainname: ''\n    searchpath: {  }\ncron:\n    install: '1'\n    jobs:\n        cj_prs7zkvw7g1b:\n            name: 'testapp jobs'\n            user: vagrant\n            command: 'php /var/www//testapp/cron.php > /dev/null'\n            minute: '1'\n            hour: '*/2'\n            weekday: '*'\n            month: '*'\n            monthday: ''\nnginx:\n    install: '0'\n    settings:\n        version: present\n        default_vhost: 1\n        proxy_buffers: '4 256k'\n        proxy_buffer_size: 128k\n        proxy_connect_timeout: 600s\n        proxy_send_timeout: 600s\n        proxy_read_timeout: 600s\n        names_hash_bucket_size: 128\n    upstreams: {  }\n    vhosts:\n        nxv_n087wiye8ku9:\n            server_name: awesome.dev\n            server_aliases:\n                - www.awesome.dev\n            www_root: /var/www/awesome\n            listen_port: '80'\n            client_max_body_size: 1m\n            ssl: '0'\n            locations:\n                nxvl_ffz4010gqxpk:\n                    www_root: /var/www/awesome/web\n                    location: /\n                    autoindex: 'off'\n                    internal: 'false'\n                    index_files:\n                        - index.html\n                        - index.php\n                        - app.php\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /index.php$is_args$args\n                        - /app.php$is_args$args\n                    fastcgi: ''\n                    fastcgi_index: ''\n                    fastcgi_split_path: ''\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_ekxxfmbtwfxp:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/(app_dev|config)\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /app_dev.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: app_dev.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                        - 'APP_ENV dev'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_kiz7c855rr19:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/index\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /index.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: index.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_4x0fk1jrwczd:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/app\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /app.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: app.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                        - 'APP_ENV prod'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n    proxies: {  }\napache:\n    install: '1'\n    settings:\n        version: 2.4\n        user: www-data\n        group: www-data\n        default_vhost: true\n        manage_user: false\n        manage_group: false\n        sendfile: 0\n    modules:\n        - proxy_fcgi\n        - rewrite\n    vhosts:\n        av_ds7c9tnjwhe7:\n            servername: testapp.dev\n            docroot: /var/www/testapp/web\n            port: '80'\n            setenvif:\n                - 'Authorization \"(.*)\" HTTP_AUTHORIZATION=$1'\n            custom_fragment: ''\n            ssl: '0'\n            ssl_cert: LETSENCRYPT\n            ssl_key: LETSENCRYPT\n            ssl_chain: LETSENCRYPT\n            ssl_certs_dir: LETSENCRYPT\n            ssl_protocol: ''\n            ssl_cipher: ''\n            directories:\n                avd_rt2ki1ql2fu5:\n                    path: /var/www/testapp/web\n                    directoryindex: 'index.php app.dev app.php'\n                    options:\n                        - Indexes\n                        - FollowSymlinks\n                        - MultiViews\n                    allow_override:\n                        - All\n                    require:\n                        - 'all granted'\n                    custom_fragment: ''\n                    provider: directory\n            files_match:\n                avfm_v71rd527gjtf:\n                    path: (app_dev|config)\\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    setenv:\n                        - 'APP_ENV dev'\n                    custom_fragment: ''\n                    provider: filesmatch\n                avfm_qy6m6xg433l6:\n                    path: app\\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    setenv:\n                        - 'APP_ENV prod'\n                    custom_fragment: ''\n                    provider: filesmatch\n                avfm_cb8wrbi2n6zb:\n                    path: \\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    custom_fragment: ''\n                    provider: filesmatch\nletsencrypt:\n    install: '1'\n    settings:\n        email: ''\n        webserver_service: ''\n    domains: {  }\nphp:\n    install: '1'\n    settings:\n        version: '7.1'\n    modules:\n        php:\n            - cli\n            - intl\n            - xml\n            - curl\n            - bz2\n            - mysql\n            - geoip\n        pear: {  }\n        pecl: {  }\n    ini:\n        display_errors: 'On'\n        error_reporting: '-1'\n        session.save_path: /var/lib/php/session\n        date.timezone: UTC\n    fpm_ini:\n        error_log: /var/log/php-fpm.log\n    fpm_pools:\n        phpfp_ebvr4hi3kq17:\n            ini:\n                prefix: www\n                listen: '127.0.0.1:9000'\n                security.limit_extensions: .php\n                user: www-user\n                group: www-data\n    composer: '1'\n    composer_home: ''\nxdebug:\n    install: '1'\n    settings:\n        xdebug.default_enable: '1'\n        xdebug.remote_autostart: '0'\n        xdebug.remote_connect_back: '1'\n        xdebug.remote_enable: '1'\n        xdebug.remote_handler: dbgp\n        xdebug.remote_port: '9000'\nblackfire:\n    install: '0'\n    settings:\n        server_id: ''\n        server_token: ''\n        agent:\n            http_proxy: ''\n            https_proxy: ''\n            log_file: stderr\n            log_level: '1'\n        php:\n            agent_timeout: '0.25'\n            log_file: ''\n            log_level: '1'\nxhprof:\n    install: '0'\nwpcli:\n    install: '0'\n    version: v1.1.0\ndrush:\n    install: '0'\n    version: 8.0.5\nruby:\n    install: '1'\n    versions:\n        rv_fgahfoxuxm8m:\n            default: '1'\n            bundler: '1'\n            version: 2.3.1\n            gems:\n                - [email protected]\n                - [email protected]\n                - [email protected]\npython:\n    install: '1'\n    packages: {  }\n    versions: {  }\nnodejs:\n    install: '0'\n    settings:\n        version: '6'\n    npm_packages: {  }\nmariadb:\n    install: '1'\n    settings:\n        version: '10.1'\n        root_password: '123'\n        override_options: {  }\n    users:\n        mariadbnu_9ujhdpfj2d60:\n            name: testapp\n            password: '123'\n    databases:\n        mariadbnd_6bxe69ouot9n:\n            name: testapp\n            sql: ''\n    grants:\n        mariadbng_z4drxt7vpk11:\n            user: testapp\n            table: '*.*'\n            privileges:\n                - ALL\nmysql:\n    install: '0'\n    settings:\n        version: '5.7'\n        root_password: '123'\n        override_options: {  }\n    users:\n        mysqlnu_74n6vlw5x1vr:\n            name: dbuser\n            password: '123'\n    databases:\n        mysqlnd_w1gyqiltk87y:\n            name: dbname\n            sql: ''\n    grants:\n        mysqlng_4nlv2f7bql9c:\n            user: dbuser\n            table: '*.*'\n            privileges:\n                - ALL\npostgresql:\n    install: '0'\n    settings:\n        global:\n            encoding: UTF8\n            version: '9.6'\n        server:\n            postgres_password: '123'\n    databases: {  }\n    users: {  }\n    grants: {  }\nmongodb:\n    install: '0'\n    settings:\n        bind_ip: 127.0.0.1\n        port: '27017'\n    globals:\n        version: 2.6.0\n    databases: {  }\nredis:\n    install: '0'\n    settings:\n        port: '6379'\nsqlite:\n    install: '0'\n    databases: {  }\nmailhog:\n    install: '0'\n    settings:\n        smtp_ip: 0.0.0.0\n        smtp_port: 1025\n        http_ip: 0.0.0.0\n        http_port: '8025'\n        path: /usr/local/bin/mailhog\nbeanstalkd:\n    install: '0'\n    settings:\n        listenaddress: 0.0.0.0\n        listenport: '11300'\n        maxjobsize: '65535'\n        maxconnections: '1024'\n        binlogdir: /var/lib/beanstalkd/binlog\n        binlogfsync: null\n        binlogsize: '10485760'\n    beanstalk_console: 0\nrabbitmq:\n    install: '0'\n    settings:\n        port: '5672'\n    users: {  }\n    vhosts: {  }\n    plugins: {  }\nelastic_search:\n    install: '0'\n    settings:\n        version: 2.3.1\n        java_install: true\n    instances:\n        esi_299dbdf64vje:\n            name: es-01\nsolr:\n    install: '0'\n    settings:\n        version: 5.5.2\n        port: '8984'\n\n\n```\n\nAs you probably have already realized, the configurator is just a gui for the generated file. If you need change something just edit it all put it again into the <https://puphpet.com/> (drag & drop works) to load values again and add something. \n\n## Run the Machine\n\nTo run the machine go to the `vagrant` using a terminal and use the `vagrant up` command.  \nMeantime when vagrant is running the VM put someting into the `www/testapp/web/index.php` location.  \nI added the following code:\n\n```php\n<?php\nphpinfo();\n```\n\nTo check if machine is working properly use `vagrant status`.  \nTo connect by ssh use `vagrant ssh`.  \n\nTo check if everything has been resolved properly so far just go to the <http://testapp.dev>. You should see the phpinfo page like that:\n\n![Phpinfo](http://i.imgur.com/TXIiTKz.png)\n\n\nI hope you will enjoy the tool as much as I do.  \nNext time I will show how to extend Puppet by new instructions - I will deploy my application using the configuration I created here.\n\nBests!",
      "json_metadata": "{\"tags\":[\"programming\",\"php\",\"vagrant\",\"development\",\"technology\"],\"image\":[\"http://i.imgur.com/UwR9bbF.png\",\"http://i.imgur.com/IUzeoFN.png\",\"http://i.imgur.com/6EGoeuu.png\",\"http://i.imgur.com/VKnMm2j.png\",\"http://i.imgur.com/B8aSu82.png\",\"http://i.imgur.com/UsbcWey.png\",\"http://i.imgur.com/dFAlVOu.png\",\"http://i.imgur.com/rFfKohR.png\",\"http://i.imgur.com/lxWaxW8.png\",\"http://i.imgur.com/wIQMxbq.png\",\"http://i.imgur.com/QUonHGF.png\",\"http://i.imgur.com/SXyu3n0.png\",\"http://i.imgur.com/ssfnLYD.png\",\"http://i.imgur.com/TXIiTKz.png\"],\"links\":[\"https://puphpet.com/\",\"http://vagrantup.com\",\"http://puppetlabs.com/\",\"https://www.virtualbox.org/wiki/Downloads\",\"https://launchpad.net/~ondrej/+archive/ubuntu/php/\",\"https://mariadb.org/\",\"http://testapp.dev\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2017/08/01 13:45:09
voteregoto
authoregoto
permlinkdevelopment-environment-with-puphpet
weight10000 (100.00%)
Transaction InfoBlock #14195220/Trx cbdfff0096023305b8b7fe1f99a737e8459b0868
View Raw JSON Data
{
  "trx_id": "cbdfff0096023305b8b7fe1f99a737e8459b0868",
  "block": 14195220,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T13:45:09",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 10000
    }
  ]
}
2017/08/01 13:45:03
voteregoto
authoregoto
permlinkdevelopment-environment-with-puphpet
weight0 (0.00%)
Transaction InfoBlock #14195218/Trx 4415da8fba3a9d6fae9a9ee3eaacf7bb3b1e84bc
View Raw JSON Data
{
  "trx_id": "4415da8fba3a9d6fae9a9ee3eaacf7bb3b1e84bc",
  "block": 14195218,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T13:45:03",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 0
    }
  ]
}
2017/08/01 13:23:39
voteregoto
authoregoto
permlinkdevelopment-environment-with-puphpet
weight10000 (100.00%)
Transaction InfoBlock #14194790/Trx 60374ba6134d4f64268ac69e0b2267b6b8800126
View Raw JSON Data
{
  "trx_id": "60374ba6134d4f64268ac69e0b2267b6b8800126",
  "block": 14194790,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T13:23:39",
  "op": [
    "vote",
    {
      "voter": "egoto",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "weight": 10000
    }
  ]
}
2017/08/01 13:23:39
parent author
parent permlinkprogramming
authoregoto
permlinkdevelopment-environment-with-puphpet
titleDevelopment Environment with Puphpet
body# Development Environment with Puphpet ## General I've been using PHP and the LAMP stack as my main environment since 2009. At the beginning of every project I had same issues related to a VM preparation. I found several tools on the market which I tested: Vagrant, Chef, Ansible, Puppet - these all are great and help prepare the development environment automatization. Today, I want to show a helpful tool (esspecialy from the PHP developer point of view): [Puphpet](https://puphpet.com/) Puphpet is a configurator for [Vagrant](http://vagrantup.com) and [Puppet](http://puppetlabs.com/). It prepares a package with all necessary files to run a new virtual machine with all required components by a PHP application. ![Puphpet website preview](http://i.imgur.com/UwR9bbF.png) In short, Puphpet helps to prepare a local development environment without detailed knowledge about Vagrant and Puppet. ## Configuration The following example shows how to run a PHP application based on the Symfony framework. The app uses LAMP. ### Requirements You need install [Vagrant](http://vagrantup.com) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) to finish that example. ### Puphpet Creator #### General options Go to the <https://puphpet.com/> website and click the green button. ![Get started](http://i.imgur.com/IUzeoFN.png) On the first step, I chose the **Virtualbox** provider (you can use VmWare solutions as well) and the **Ubuntu Xenial 16.04 LTS x64** operating system. ![Provider and OS](http://i.imgur.com/6EGoeuu.png) Now is the time to set machines. I need an only one machine in the example, but that configurator gives us the possibility to specify as many as we need. To create more advanced configuration we can add more machines. The case would look like below: 1. I need an e-commerce system 2. I need a PIM solution 3. In the configurator, I can create to separated machines to test integrations between those etc. Have a look at the following picture: ![Machines setup](http://i.imgur.com/VKnMm2j.png) The first and the second input specify identification. It doesn't really matter now, you can fill as you like. **Ip Address** input specifies an address which we can use by ssh or http to connect the new VM. In this form are also two values responsible for the memory amount (assigned to the VM) and a number of CPU's assigned to the machine (no worries you can change it later). A crucial step in the configuration process is setting-up shared folders. I want to share the `/var/www` directory between the host and VM. Files used by the application I will put into the `../www` directory. Also, I'd like to share `/vagrant` folder with my local machine. The directory will contain all data from the puphpet project directory. At the end I will see php application files in `/var/www` and puphpet application files in the `/vagrant` location. To share files between my local system (in my case it's MacOs) and the Virtual Machine environment (Ubuntu) I used shared folders option, like below. ![www directory](http://i.imgur.com/B8aSu82.png) ![vagrant directory](http://i.imgur.com/UsbcWey.png) #### Packages What is amazing, Puphpet has a packages configurator. Let's say that we need several packages installed on our VM, you can update that list also after we finish the configurator. To run my app I need following packages * **wkhtmltopdf** - my app would use it to generate pdf documents based on website views * htop, vim * zip *Note that you don't have to specify any php extensions here, there is a step later which does it.* ![packages setup](http://i.imgur.com/dFAlVOu.png) #### Users and Groups The netx step precise groups and users created in the VM. I need an only one user named: *testapp*. See the picture below to find how to make it. ![Users and Groups](http://i.imgur.com/rFfKohR.png) #### Cron jobs I missed steps Locale, Firewall and Resolv in that usage showcase (left default values) adn went directly to the Cron Jobs step. The cron job configurator defines a scheduler for scripts available in the VM. I know that `/var/www` directory will be shared with my `../www` folder, therefore I can specify a script run automatically every second hour. ![Cron job setup](http://i.imgur.com/lxWaxW8.png) #### Apache Installation Now I want to configure the apache instance (look that you can choose Nginx if you prefer). For the example needs I add the only one host, let's say that I want to run my application using the `http://testapp.dev` address and I put my public app file into the `/var/www/testapp/web` directory. ![Apache installation](http://i.imgur.com/wIQMxbq.png) And basically, that's it - it will create all necessary file to tun the host. What is nice, vagrant takes care of the `/etc/hosts/` file update. #### PHP Configuration Here we're able to specify the php version and as I've mentioned before - php extensions. I added few modules required by my app. Find all available php modules here: <https://launchpad.net/~ondrej/+archive/ubuntu/php/> Here I also specified `php-fpm` settings, actually I used the default values but here is the right place to change it. At the end, I also checked the composer installation to improve the automatization process. ![Install php](http://i.imgur.com/QUonHGF.png) #### Mysql / Mariadb The last step I'm going to use is the database setup. I want to create an initial database used by my app using [Mariadb](https://mariadb.org/) (a MySql fork). ![Mariadb](http://i.imgur.com/SXyu3n0.png) #### Other Steps and Download Of course, there are a lot of steps you can configure like: **Solr**, **Redis** and so on but now is enough to make a test application based on that configuration. Go to the last step: *Download Your Customized Archive*. Here is the place where we can download the config puphpet module file or all projects files. Let's click on the green button ![Download archive](http://i.imgur.com/ssfnLYD.png) And create somewhere two folders. I've chosed following paths: * `~/testapp/vagrant` * `~/testapp/www` Unpack all downloaded file into the `testapp/vagrant` directory. #### Config.yaml The only one file generated by the configurator is located in the `vagrant/puphpet/config.yaml` path. Our file should look like below: ```yaml vagrantfile: target: local vm: provider: local: box: puphpet/ubuntu1604-x64 box_url: 'false' box_version: '0' chosen_virtualizer: virtualbox virtualizers: virtualbox: modifyvm: natdnshostresolver1: false showgui: 0 vmware: numvcpus: 1 parallels: linked_clone: 0 check_guest_tools: 0 update_guest_tools: 0 machines: vflm_k4itnhhid5s4: id: machine1 hostname: machine1.puphpet network: private_network: 192.168.56.102 forwarded_port: vflmnfp_j24v5o08cywg: host: '6637' guest: '22' memory: '2048' cpus: '4' provision: puppet: manifests_path: puphpet/puppet/manifests module_path: - puphpet/puppet/modules - puphpet/puppet/manifests options: - '--verbose' - '--hiera_config /vagrant/puphpet/puppet/hiera.yaml' synced_folder: vflsf_8wdfqwrda380: owner: www-data group: www-data source: ./ target: /vagrant sync_type: nfs smb: smb_host: '' smb_username: '' smb_password: '' mount_options: dir_mode: '0775' file_mode: '0664' rsync: args: - '--verbose' - '--archive' - '-z' exclude: - .vagrant/ - .git/ auto: 'true' vflsf_20wd8du0kjef: owner: www-data group: www-data source: ../www target: /var/www sync_type: nfs smb: smb_host: '' smb_username: '' smb_password: '' mount_options: dir_mode: '0775' file_mode: '0664' rsync: args: - '--verbose' - '--archive' - '-z' exclude: - .vagrant/ - .git/ auto: 'true' usable_port_range: start: 10200 stop: 10500 post_up_message: '' ssh: host: 'false' port: 'false' private_key_path: 'false' username: vagrant guest_port: 'false' keep_alive: '1' forward_agent: 'false' forward_x11: 'false' shell: 'bash -l' insert_key: 'false' vagrant: host: detect proxy: http: '' https: '' ftp: '' no_proxy: '' server: install: '1' packages: - vim - htop - wkhtmltopdf - zip users_groups: install: '1' groups: - testapp users: - '{testapp}{testapp}' locale: install: '1' settings: default_locale: en_US.UTF-8 locales: - en_GB.UTF-8 - en_US.UTF-8 timezone: UTC firewall: install: '1' rules: { } resolv: install: '1' nameservers: - 8.8.8.8 - 8.8.4.4 domainname: '' searchpath: { } cron: install: '1' jobs: cj_prs7zkvw7g1b: name: 'testapp jobs' user: vagrant command: 'php /var/www//testapp/cron.php > /dev/null' minute: '1' hour: '*/2' weekday: '*' month: '*' monthday: '' nginx: install: '0' settings: version: present default_vhost: 1 proxy_buffers: '4 256k' proxy_buffer_size: 128k proxy_connect_timeout: 600s proxy_send_timeout: 600s proxy_read_timeout: 600s names_hash_bucket_size: 128 upstreams: { } vhosts: nxv_n087wiye8ku9: server_name: awesome.dev server_aliases: - www.awesome.dev www_root: /var/www/awesome listen_port: '80' client_max_body_size: 1m ssl: '0' locations: nxvl_ffz4010gqxpk: www_root: /var/www/awesome/web location: / autoindex: 'off' internal: 'false' index_files: - index.html - index.php - app.php try_files: - $uri - $uri/ - /index.php$is_args$args - /app.php$is_args$args fastcgi: '' fastcgi_index: '' fastcgi_split_path: '' proxy: '' proxy_redirect: '' nxvl_ekxxfmbtwfxp: www_root: /var/www/awesome/web location: '~ ^/(app_dev|config)\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /app_dev.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: app_dev.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' - 'APP_ENV dev' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' nxvl_kiz7c855rr19: www_root: /var/www/awesome/web location: '~ ^/index\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /index.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: index.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' nxvl_4x0fk1jrwczd: www_root: /var/www/awesome/web location: '~ ^/app\.php(/|$)' autoindex: 'off' internal: 'false' try_files: - $uri - $uri/ - /app.php$is_args$args fastcgi: '127.0.0.1:9000' fastcgi_index: app.php fastcgi_split_path: '^(.+\.php)(/.*)$' fast_cgi_params_extra: - 'SCRIPT_FILENAME $document_root$fastcgi_script_name' - 'APP_ENV prod' set: - '$path_info $fastcgi_path_info' proxy: '' proxy_redirect: '' proxies: { } apache: install: '1' settings: version: 2.4 user: www-data group: www-data default_vhost: true manage_user: false manage_group: false sendfile: 0 modules: - proxy_fcgi - rewrite vhosts: av_ds7c9tnjwhe7: servername: testapp.dev docroot: /var/www/testapp/web port: '80' setenvif: - 'Authorization "(.*)" HTTP_AUTHORIZATION=$1' custom_fragment: '' ssl: '0' ssl_cert: LETSENCRYPT ssl_key: LETSENCRYPT ssl_chain: LETSENCRYPT ssl_certs_dir: LETSENCRYPT ssl_protocol: '' ssl_cipher: '' directories: avd_rt2ki1ql2fu5: path: /var/www/testapp/web directoryindex: 'index.php app.dev app.php' options: - Indexes - FollowSymlinks - MultiViews allow_override: - All require: - 'all granted' custom_fragment: '' provider: directory files_match: avfm_v71rd527gjtf: path: (app_dev|config)\.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' setenv: - 'APP_ENV dev' custom_fragment: '' provider: filesmatch avfm_qy6m6xg433l6: path: app\.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' setenv: - 'APP_ENV prod' custom_fragment: '' provider: filesmatch avfm_cb8wrbi2n6zb: path: \.php$ sethandler: 'proxy:fcgi://127.0.0.1:9000' custom_fragment: '' provider: filesmatch letsencrypt: install: '1' settings: email: '' webserver_service: '' domains: { } php: install: '1' settings: version: '7.1' modules: php: - cli - intl - xml - curl - bz2 - mysql - geoip pear: { } pecl: { } ini: display_errors: 'On' error_reporting: '-1' session.save_path: /var/lib/php/session date.timezone: UTC fpm_ini: error_log: /var/log/php-fpm.log fpm_pools: phpfp_ebvr4hi3kq17: ini: prefix: www listen: '127.0.0.1:9000' security.limit_extensions: .php user: www-user group: www-data composer: '1' composer_home: '' xdebug: install: '1' settings: xdebug.default_enable: '1' xdebug.remote_autostart: '0' xdebug.remote_connect_back: '1' xdebug.remote_enable: '1' xdebug.remote_handler: dbgp xdebug.remote_port: '9000' blackfire: install: '0' settings: server_id: '' server_token: '' agent: http_proxy: '' https_proxy: '' log_file: stderr log_level: '1' php: agent_timeout: '0.25' log_file: '' log_level: '1' xhprof: install: '0' wpcli: install: '0' version: v1.1.0 drush: install: '0' version: 8.0.5 ruby: install: '1' versions: rv_fgahfoxuxm8m: default: '1' bundler: '1' version: 2.3.1 gems: - [email protected] - [email protected] - [email protected] python: install: '1' packages: { } versions: { } nodejs: install: '0' settings: version: '6' npm_packages: { } mariadb: install: '1' settings: version: '10.1' root_password: '123' override_options: { } users: mariadbnu_9ujhdpfj2d60: name: testapp password: '123' databases: mariadbnd_6bxe69ouot9n: name: testapp sql: '' grants: mariadbng_z4drxt7vpk11: user: testapp table: '*.*' privileges: - ALL mysql: install: '0' settings: version: '5.7' root_password: '123' override_options: { } users: mysqlnu_74n6vlw5x1vr: name: dbuser password: '123' databases: mysqlnd_w1gyqiltk87y: name: dbname sql: '' grants: mysqlng_4nlv2f7bql9c: user: dbuser table: '*.*' privileges: - ALL postgresql: install: '0' settings: global: encoding: UTF8 version: '9.6' server: postgres_password: '123' databases: { } users: { } grants: { } mongodb: install: '0' settings: bind_ip: 127.0.0.1 port: '27017' globals: version: 2.6.0 databases: { } redis: install: '0' settings: port: '6379' sqlite: install: '0' databases: { } mailhog: install: '0' settings: smtp_ip: 0.0.0.0 smtp_port: 1025 http_ip: 0.0.0.0 http_port: '8025' path: /usr/local/bin/mailhog beanstalkd: install: '0' settings: listenaddress: 0.0.0.0 listenport: '11300' maxjobsize: '65535' maxconnections: '1024' binlogdir: /var/lib/beanstalkd/binlog binlogfsync: null binlogsize: '10485760' beanstalk_console: 0 rabbitmq: install: '0' settings: port: '5672' users: { } vhosts: { } plugins: { } elastic_search: install: '0' settings: version: 2.3.1 java_install: true instances: esi_299dbdf64vje: name: es-01 solr: install: '0' settings: version: 5.5.2 port: '8984' ``` As you probably have already realized, the configurator is just a gui for the generated file. If you need change something just edit it all put it again into the <https://puphpet.com/> (drag & drop works) to load values again and add something. ## Run the Machine To run the machine go to the `vagrant` using a terminal and use the `vagrant up` command. Meantime when vagrant is running the VM put someting into the `www/testapp/web/index.php` location. I added the following code: ```php <?php phpinfo(); ``` To check if machine is working properly use `vagrant status`. To connect by ssh use `vagrant ssh`. To check if everything has been resolved properly so far just go to the <http://testapp.dev>. You should see the phpinfo page like that: ![Phpinfo](http://i.imgur.com/TXIiTKz.png) I hope you will enjoy the tool as much as I do. Next time I will show how to extend Puppet by new instructions - I will deploy my application using the configuration I created here. Bests!
json metadata{"tags":["programming","php","vagrant","development"],"image":["http://i.imgur.com/UwR9bbF.png","http://i.imgur.com/IUzeoFN.png","http://i.imgur.com/6EGoeuu.png","http://i.imgur.com/VKnMm2j.png","http://i.imgur.com/B8aSu82.png","http://i.imgur.com/UsbcWey.png","http://i.imgur.com/dFAlVOu.png","http://i.imgur.com/rFfKohR.png","http://i.imgur.com/lxWaxW8.png","http://i.imgur.com/wIQMxbq.png","http://i.imgur.com/QUonHGF.png","http://i.imgur.com/SXyu3n0.png","http://i.imgur.com/ssfnLYD.png","http://i.imgur.com/TXIiTKz.png"],"links":["https://puphpet.com/","http://vagrantup.com","http://puppetlabs.com/","https://www.virtualbox.org/wiki/Downloads","https://launchpad.net/~ondrej/+archive/ubuntu/php/","https://mariadb.org/","http://testapp.dev"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #14194790/Trx 60374ba6134d4f64268ac69e0b2267b6b8800126
View Raw JSON Data
{
  "trx_id": "60374ba6134d4f64268ac69e0b2267b6b8800126",
  "block": 14194790,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T13:23:39",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "programming",
      "author": "egoto",
      "permlink": "development-environment-with-puphpet",
      "title": "Development Environment with Puphpet",
      "body": "# Development Environment with Puphpet\n\n## General\n\nI've been using PHP and the LAMP stack as my main environment since 2009.  \nAt the beginning of every project I had same issues related to a VM preparation.\n\nI found several tools on the market which I tested: Vagrant, Chef, Ansible, Puppet - these all are great and help prepare the development environment automatization. \n\nToday, I want to show a helpful tool (esspecialy from the PHP developer point of view): [Puphpet](https://puphpet.com/)  \nPuphpet is a configurator for [Vagrant](http://vagrantup.com) and [Puppet](http://puppetlabs.com/). It prepares a package with all necessary files to run a new virtual machine with all required components by a PHP application.\n\n![Puphpet website preview](http://i.imgur.com/UwR9bbF.png)\n\nIn short, Puphpet helps to prepare a local development environment without detailed knowledge about Vagrant and Puppet.\n\n## Configuration\n\nThe following example shows how to run a PHP application based on the Symfony framework.  \nThe app uses LAMP.\n\n### Requirements\n\nYou need install [Vagrant](http://vagrantup.com) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) to finish that example.\n\n### Puphpet Creator\n\n#### General options\n\nGo to the <https://puphpet.com/> website and click the green button.\n\n![Get started](http://i.imgur.com/IUzeoFN.png)\n\n \nOn the first step, I chose the **Virtualbox** provider (you can use VmWare solutions as well) and the **Ubuntu Xenial 16.04 LTS x64** operating system.\n\n![Provider and OS](http://i.imgur.com/6EGoeuu.png)\n\nNow is the time to set machines. I need an only one machine in the example, but that configurator gives us the possibility to specify as many as we need.  \nTo create more advanced configuration we can add more machines. The case would look like below:\n1. I need an e-commerce system\n2. I need a PIM solution\n3. In the configurator, I can create to separated machines to test integrations between those etc. \n\nHave a look at the following picture:\n\n![Machines setup](http://i.imgur.com/VKnMm2j.png)\n\nThe first and the second input specify identification. It doesn't really matter now, you can fill as you like.  **Ip Address** input specifies an address which we can use by ssh or http to connect the new VM.  \nIn this form are also two values responsible for the memory amount (assigned to the VM) and a number of CPU's assigned to the machine (no worries you can change it later).\n\nA crucial step in the configuration process is setting-up shared folders. \nI want to share the `/var/www` directory between the host and VM.  \nFiles used by the application I will put into the `../www` directory. Also, I'd like to share `/vagrant` folder with my local machine. The directory will contain all data from the puphpet project directory.  \nAt the end I will see php application files in `/var/www` and puphpet application files in the `/vagrant` location.\n\nTo share files between my local system (in my case it's MacOs) and the Virtual Machine environment (Ubuntu) I used shared folders option, like below.\n\n![www directory](http://i.imgur.com/B8aSu82.png)\n\n![vagrant directory](http://i.imgur.com/UsbcWey.png)\n\n#### Packages\n\nWhat is amazing, Puphpet has a packages configurator.  \nLet's say that we need several packages installed on our VM, you can update that list also after we finish the configurator.  \nTo run my app I need following packages\n* **wkhtmltopdf** - my app would use it to generate pdf documents based on website views\n* htop, vim\n* zip\n\n*Note that you don't have to specify any php extensions here, there is a step later which does it.*\n\n![packages setup](http://i.imgur.com/dFAlVOu.png)\n\n#### Users and Groups\n\nThe netx step precise groups and users created in the VM. \nI need an only one user named: *testapp*. See the picture below to find how to make it.\n\n![Users and Groups](http://i.imgur.com/rFfKohR.png)\n\n#### Cron jobs\n\nI missed steps Locale, Firewall and Resolv in that usage showcase (left default values) adn went directly to the Cron Jobs step. \n\nThe cron job configurator defines a scheduler for scripts available in the VM.  \nI know that `/var/www` directory will be shared with my `../www` folder, therefore I can specify a script run automatically every second hour.\n\n![Cron job setup](http://i.imgur.com/lxWaxW8.png)\n\n\n#### Apache Installation\n\nNow I want to configure the apache instance (look that you can choose Nginx if you prefer).  \n\nFor the example needs I add the only one host, let's say that I want to run my application using the `http://testapp.dev` address and I put my public app file into the `/var/www/testapp/web` directory.\n\n![Apache installation](http://i.imgur.com/wIQMxbq.png)\n\nAnd basically, that's it - it will create all necessary file to tun the host. What is nice, vagrant takes care of the `/etc/hosts/` file update.\n\n#### PHP Configuration\n\nHere we're able to specify the php version and as I've mentioned before - php extensions.  \nI added few modules required by my app.  \nFind all available php modules here: <https://launchpad.net/~ondrej/+archive/ubuntu/php/>\n\nHere I also specified `php-fpm` settings, actually I used the default values but here is the right place to change it. At the end, I also checked the composer installation to improve the automatization process.\n\n![Install php](http://i.imgur.com/QUonHGF.png)\n\n#### Mysql / Mariadb\n\nThe last step I'm going to use is the database setup.  \nI want to create an initial database used by my app using [Mariadb](https://mariadb.org/) (a MySql fork).\n\n![Mariadb](http://i.imgur.com/SXyu3n0.png)\n\n#### Other Steps and Download\n\nOf course, there are a lot of steps you can configure like: **Solr**, **Redis** and so on but now is enough to make a test application based on that configuration. Go to the last step: *Download Your Customized Archive*.\n\nHere is the place where we can download the config puphpet module file or all projects files.\nLet's click on the green button\n\n![Download archive](http://i.imgur.com/ssfnLYD.png)\n\nAnd create somewhere two folders. I've chosed following paths:\n\n* `~/testapp/vagrant`\n* `~/testapp/www`\n\nUnpack all downloaded file into the `testapp/vagrant` directory.\n\n#### Config.yaml\n\nThe only one file generated by the configurator is located in the `vagrant/puphpet/config.yaml` path.  \nOur file should look like below:\n\n```yaml\nvagrantfile:\n    target: local\n    vm:\n        provider:\n            local:\n                box: puphpet/ubuntu1604-x64\n                box_url: 'false'\n                box_version: '0'\n                chosen_virtualizer: virtualbox\n                virtualizers:\n                    virtualbox:\n                        modifyvm:\n                            natdnshostresolver1: false\n                        showgui: 0\n                    vmware:\n                        numvcpus: 1\n                    parallels:\n                        linked_clone: 0\n                        check_guest_tools: 0\n                        update_guest_tools: 0\n                machines:\n                    vflm_k4itnhhid5s4:\n                        id: machine1\n                        hostname: machine1.puphpet\n                        network:\n                            private_network: 192.168.56.102\n                            forwarded_port:\n                                vflmnfp_j24v5o08cywg:\n                                    host: '6637'\n                                    guest: '22'\n                        memory: '2048'\n                        cpus: '4'\n        provision:\n            puppet:\n                manifests_path: puphpet/puppet/manifests\n                module_path:\n                    - puphpet/puppet/modules\n                    - puphpet/puppet/manifests\n                options:\n                    - '--verbose'\n                    - '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'\n        synced_folder:\n            vflsf_8wdfqwrda380:\n                owner: www-data\n                group: www-data\n                source: ./\n                target: /vagrant\n                sync_type: nfs\n                smb:\n                    smb_host: ''\n                    smb_username: ''\n                    smb_password: ''\n                    mount_options:\n                        dir_mode: '0775'\n                        file_mode: '0664'\n                rsync:\n                    args:\n                        - '--verbose'\n                        - '--archive'\n                        - '-z'\n                    exclude:\n                        - .vagrant/\n                        - .git/\n                    auto: 'true'\n            vflsf_20wd8du0kjef:\n                owner: www-data\n                group: www-data\n                source: ../www\n                target: /var/www\n                sync_type: nfs\n                smb:\n                    smb_host: ''\n                    smb_username: ''\n                    smb_password: ''\n                    mount_options:\n                        dir_mode: '0775'\n                        file_mode: '0664'\n                rsync:\n                    args:\n                        - '--verbose'\n                        - '--archive'\n                        - '-z'\n                    exclude:\n                        - .vagrant/\n                        - .git/\n                    auto: 'true'\n        usable_port_range:\n            start: 10200\n            stop: 10500\n        post_up_message: ''\n    ssh:\n        host: 'false'\n        port: 'false'\n        private_key_path: 'false'\n        username: vagrant\n        guest_port: 'false'\n        keep_alive: '1'\n        forward_agent: 'false'\n        forward_x11: 'false'\n        shell: 'bash -l'\n        insert_key: 'false'\n    vagrant:\n        host: detect\n    proxy:\n        http: ''\n        https: ''\n        ftp: ''\n        no_proxy: ''\nserver:\n    install: '1'\n    packages:\n        - vim\n        - htop\n        - wkhtmltopdf\n        - zip\nusers_groups:\n    install: '1'\n    groups:\n        - testapp\n    users:\n        - '{testapp}{testapp}'\nlocale:\n    install: '1'\n    settings:\n        default_locale: en_US.UTF-8\n        locales:\n            - en_GB.UTF-8\n            - en_US.UTF-8\n        timezone: UTC\nfirewall:\n    install: '1'\n    rules: {  }\nresolv:\n    install: '1'\n    nameservers:\n        - 8.8.8.8\n        - 8.8.4.4\n    domainname: ''\n    searchpath: {  }\ncron:\n    install: '1'\n    jobs:\n        cj_prs7zkvw7g1b:\n            name: 'testapp jobs'\n            user: vagrant\n            command: 'php /var/www//testapp/cron.php > /dev/null'\n            minute: '1'\n            hour: '*/2'\n            weekday: '*'\n            month: '*'\n            monthday: ''\nnginx:\n    install: '0'\n    settings:\n        version: present\n        default_vhost: 1\n        proxy_buffers: '4 256k'\n        proxy_buffer_size: 128k\n        proxy_connect_timeout: 600s\n        proxy_send_timeout: 600s\n        proxy_read_timeout: 600s\n        names_hash_bucket_size: 128\n    upstreams: {  }\n    vhosts:\n        nxv_n087wiye8ku9:\n            server_name: awesome.dev\n            server_aliases:\n                - www.awesome.dev\n            www_root: /var/www/awesome\n            listen_port: '80'\n            client_max_body_size: 1m\n            ssl: '0'\n            locations:\n                nxvl_ffz4010gqxpk:\n                    www_root: /var/www/awesome/web\n                    location: /\n                    autoindex: 'off'\n                    internal: 'false'\n                    index_files:\n                        - index.html\n                        - index.php\n                        - app.php\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /index.php$is_args$args\n                        - /app.php$is_args$args\n                    fastcgi: ''\n                    fastcgi_index: ''\n                    fastcgi_split_path: ''\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_ekxxfmbtwfxp:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/(app_dev|config)\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /app_dev.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: app_dev.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                        - 'APP_ENV dev'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_kiz7c855rr19:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/index\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /index.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: index.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n                nxvl_4x0fk1jrwczd:\n                    www_root: /var/www/awesome/web\n                    location: '~ ^/app\\.php(/|$)'\n                    autoindex: 'off'\n                    internal: 'false'\n                    try_files:\n                        - $uri\n                        - $uri/\n                        - /app.php$is_args$args\n                    fastcgi: '127.0.0.1:9000'\n                    fastcgi_index: app.php\n                    fastcgi_split_path: '^(.+\\.php)(/.*)$'\n                    fast_cgi_params_extra:\n                        - 'SCRIPT_FILENAME $document_root$fastcgi_script_name'\n                        - 'APP_ENV prod'\n                    set:\n                        - '$path_info $fastcgi_path_info'\n                    proxy: ''\n                    proxy_redirect: ''\n    proxies: {  }\napache:\n    install: '1'\n    settings:\n        version: 2.4\n        user: www-data\n        group: www-data\n        default_vhost: true\n        manage_user: false\n        manage_group: false\n        sendfile: 0\n    modules:\n        - proxy_fcgi\n        - rewrite\n    vhosts:\n        av_ds7c9tnjwhe7:\n            servername: testapp.dev\n            docroot: /var/www/testapp/web\n            port: '80'\n            setenvif:\n                - 'Authorization \"(.*)\" HTTP_AUTHORIZATION=$1'\n            custom_fragment: ''\n            ssl: '0'\n            ssl_cert: LETSENCRYPT\n            ssl_key: LETSENCRYPT\n            ssl_chain: LETSENCRYPT\n            ssl_certs_dir: LETSENCRYPT\n            ssl_protocol: ''\n            ssl_cipher: ''\n            directories:\n                avd_rt2ki1ql2fu5:\n                    path: /var/www/testapp/web\n                    directoryindex: 'index.php app.dev app.php'\n                    options:\n                        - Indexes\n                        - FollowSymlinks\n                        - MultiViews\n                    allow_override:\n                        - All\n                    require:\n                        - 'all granted'\n                    custom_fragment: ''\n                    provider: directory\n            files_match:\n                avfm_v71rd527gjtf:\n                    path: (app_dev|config)\\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    setenv:\n                        - 'APP_ENV dev'\n                    custom_fragment: ''\n                    provider: filesmatch\n                avfm_qy6m6xg433l6:\n                    path: app\\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    setenv:\n                        - 'APP_ENV prod'\n                    custom_fragment: ''\n                    provider: filesmatch\n                avfm_cb8wrbi2n6zb:\n                    path: \\.php$\n                    sethandler: 'proxy:fcgi://127.0.0.1:9000'\n                    custom_fragment: ''\n                    provider: filesmatch\nletsencrypt:\n    install: '1'\n    settings:\n        email: ''\n        webserver_service: ''\n    domains: {  }\nphp:\n    install: '1'\n    settings:\n        version: '7.1'\n    modules:\n        php:\n            - cli\n            - intl\n            - xml\n            - curl\n            - bz2\n            - mysql\n            - geoip\n        pear: {  }\n        pecl: {  }\n    ini:\n        display_errors: 'On'\n        error_reporting: '-1'\n        session.save_path: /var/lib/php/session\n        date.timezone: UTC\n    fpm_ini:\n        error_log: /var/log/php-fpm.log\n    fpm_pools:\n        phpfp_ebvr4hi3kq17:\n            ini:\n                prefix: www\n                listen: '127.0.0.1:9000'\n                security.limit_extensions: .php\n                user: www-user\n                group: www-data\n    composer: '1'\n    composer_home: ''\nxdebug:\n    install: '1'\n    settings:\n        xdebug.default_enable: '1'\n        xdebug.remote_autostart: '0'\n        xdebug.remote_connect_back: '1'\n        xdebug.remote_enable: '1'\n        xdebug.remote_handler: dbgp\n        xdebug.remote_port: '9000'\nblackfire:\n    install: '0'\n    settings:\n        server_id: ''\n        server_token: ''\n        agent:\n            http_proxy: ''\n            https_proxy: ''\n            log_file: stderr\n            log_level: '1'\n        php:\n            agent_timeout: '0.25'\n            log_file: ''\n            log_level: '1'\nxhprof:\n    install: '0'\nwpcli:\n    install: '0'\n    version: v1.1.0\ndrush:\n    install: '0'\n    version: 8.0.5\nruby:\n    install: '1'\n    versions:\n        rv_fgahfoxuxm8m:\n            default: '1'\n            bundler: '1'\n            version: 2.3.1\n            gems:\n                - [email protected]\n                - [email protected]\n                - [email protected]\npython:\n    install: '1'\n    packages: {  }\n    versions: {  }\nnodejs:\n    install: '0'\n    settings:\n        version: '6'\n    npm_packages: {  }\nmariadb:\n    install: '1'\n    settings:\n        version: '10.1'\n        root_password: '123'\n        override_options: {  }\n    users:\n        mariadbnu_9ujhdpfj2d60:\n            name: testapp\n            password: '123'\n    databases:\n        mariadbnd_6bxe69ouot9n:\n            name: testapp\n            sql: ''\n    grants:\n        mariadbng_z4drxt7vpk11:\n            user: testapp\n            table: '*.*'\n            privileges:\n                - ALL\nmysql:\n    install: '0'\n    settings:\n        version: '5.7'\n        root_password: '123'\n        override_options: {  }\n    users:\n        mysqlnu_74n6vlw5x1vr:\n            name: dbuser\n            password: '123'\n    databases:\n        mysqlnd_w1gyqiltk87y:\n            name: dbname\n            sql: ''\n    grants:\n        mysqlng_4nlv2f7bql9c:\n            user: dbuser\n            table: '*.*'\n            privileges:\n                - ALL\npostgresql:\n    install: '0'\n    settings:\n        global:\n            encoding: UTF8\n            version: '9.6'\n        server:\n            postgres_password: '123'\n    databases: {  }\n    users: {  }\n    grants: {  }\nmongodb:\n    install: '0'\n    settings:\n        bind_ip: 127.0.0.1\n        port: '27017'\n    globals:\n        version: 2.6.0\n    databases: {  }\nredis:\n    install: '0'\n    settings:\n        port: '6379'\nsqlite:\n    install: '0'\n    databases: {  }\nmailhog:\n    install: '0'\n    settings:\n        smtp_ip: 0.0.0.0\n        smtp_port: 1025\n        http_ip: 0.0.0.0\n        http_port: '8025'\n        path: /usr/local/bin/mailhog\nbeanstalkd:\n    install: '0'\n    settings:\n        listenaddress: 0.0.0.0\n        listenport: '11300'\n        maxjobsize: '65535'\n        maxconnections: '1024'\n        binlogdir: /var/lib/beanstalkd/binlog\n        binlogfsync: null\n        binlogsize: '10485760'\n    beanstalk_console: 0\nrabbitmq:\n    install: '0'\n    settings:\n        port: '5672'\n    users: {  }\n    vhosts: {  }\n    plugins: {  }\nelastic_search:\n    install: '0'\n    settings:\n        version: 2.3.1\n        java_install: true\n    instances:\n        esi_299dbdf64vje:\n            name: es-01\nsolr:\n    install: '0'\n    settings:\n        version: 5.5.2\n        port: '8984'\n\n\n```\n\nAs you probably have already realized, the configurator is just a gui for the generated file. If you need change something just edit it all put it again into the <https://puphpet.com/> (drag & drop works) to load values again and add something. \n\n## Run the Machine\n\nTo run the machine go to the `vagrant` using a terminal and use the `vagrant up` command.  \nMeantime when vagrant is running the VM put someting into the `www/testapp/web/index.php` location.  \nI added the following code:\n\n```php\n<?php\nphpinfo();\n```\n\nTo check if machine is working properly use `vagrant status`.  \nTo connect by ssh use `vagrant ssh`.  \n\nTo check if everything has been resolved properly so far just go to the <http://testapp.dev>. You should see the phpinfo page like that:\n\n![Phpinfo](http://i.imgur.com/TXIiTKz.png)\n\n\nI hope you will enjoy the tool as much as I do.  \nNext time I will show how to extend Puppet by new instructions - I will deploy my application using the configuration I created here.\n\nBests!",
      "json_metadata": "{\"tags\":[\"programming\",\"php\",\"vagrant\",\"development\"],\"image\":[\"http://i.imgur.com/UwR9bbF.png\",\"http://i.imgur.com/IUzeoFN.png\",\"http://i.imgur.com/6EGoeuu.png\",\"http://i.imgur.com/VKnMm2j.png\",\"http://i.imgur.com/B8aSu82.png\",\"http://i.imgur.com/UsbcWey.png\",\"http://i.imgur.com/dFAlVOu.png\",\"http://i.imgur.com/rFfKohR.png\",\"http://i.imgur.com/lxWaxW8.png\",\"http://i.imgur.com/wIQMxbq.png\",\"http://i.imgur.com/QUonHGF.png\",\"http://i.imgur.com/SXyu3n0.png\",\"http://i.imgur.com/ssfnLYD.png\",\"http://i.imgur.com/TXIiTKz.png\"],\"links\":[\"https://puphpet.com/\",\"http://vagrantup.com\",\"http://puppetlabs.com/\",\"https://www.virtualbox.org/wiki/Downloads\",\"https://launchpad.net/~ondrej/+archive/ubuntu/php/\",\"https://mariadb.org/\",\"http://testapp.dev\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
egotoupdated their account properties
2017/08/01 10:25:24
accountegoto
memo keySTM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw
json metadata{"profile":{"profile_image":"http://i.imgur.com/R5MSBHH.png?1"}}
Transaction InfoBlock #14191228/Trx f1732f67f906863fc1db3a498cdd7f76f76f0486
View Raw JSON Data
{
  "trx_id": "f1732f67f906863fc1db3a498cdd7f76f76f0486",
  "block": 14191228,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T10:25:24",
  "op": [
    "account_update",
    {
      "account": "egoto",
      "memo_key": "STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw",
      "json_metadata": "{\"profile\":{\"profile_image\":\"http://i.imgur.com/R5MSBHH.png?1\"}}"
    }
  ]
}
egotoupdated their account properties
2017/08/01 10:22:57
accountegoto
memo keySTM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw
json metadata{"profile":{"profile_image":"http://i.imgur.com/R5MSBHH.png"}}
Transaction InfoBlock #14191179/Trx fcbdb33417c34bfd06ce3c348e5e684cfd52ceb6
View Raw JSON Data
{
  "trx_id": "fcbdb33417c34bfd06ce3c348e5e684cfd52ceb6",
  "block": 14191179,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T10:22:57",
  "op": [
    "account_update",
    {
      "account": "egoto",
      "memo_key": "STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw",
      "json_metadata": "{\"profile\":{\"profile_image\":\"http://i.imgur.com/R5MSBHH.png\"}}"
    }
  ]
}
2017/08/01 07:42:57
parent authorememovic
parent permlinkneed-help
authoregoto
permlinkre-ememovic-need-help-20170801t074259188z
title
bodyTry https://www.codecademy.com/ In my opinion, it is the best way to start, you can try different languages interactively (php, python, javascript, ruby and many others) before you choose the one you like by practice exercises.
json metadata{"tags":["php"],"links":["https://www.codecademy.com/"],"app":"steemit/0.1"}
Transaction InfoBlock #14187981/Trx 4bd2041a072ba7918ed2fb37d00aef1c45b4f158
View Raw JSON Data
{
  "trx_id": "4bd2041a072ba7918ed2fb37d00aef1c45b4f158",
  "block": 14187981,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T07:42:57",
  "op": [
    "comment",
    {
      "parent_author": "ememovic",
      "parent_permlink": "need-help",
      "author": "egoto",
      "permlink": "re-ememovic-need-help-20170801t074259188z",
      "title": "",
      "body": "Try https://www.codecademy.com/\nIn my opinion, it is the best way to start, you can try different languages interactively (php, python, javascript, ruby and many others) before you choose the one you like by practice exercises.",
      "json_metadata": "{\"tags\":[\"php\"],\"links\":[\"https://www.codecademy.com/\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
steemcreated a new account: @egoto
2017/08/01 07:39:45
fee0.500 STEEM
delegation57000.000000 VESTS
creatorsteem
new account nameegoto
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7797PS6hazrJTyJTCCoTLCTdUSnLCKakMEgLU9NnLDALi9B6TC",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6AvKiXPwYqUCNuJ1fL3uzJQso928oXU7ckaFovY4PkiAryUkKa",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5Qgy28ixQhQ4FfGTuGsjztm5pQEsZXcvsmC36SAxT4fMPTNBFz",1]]}
memo keySTM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw
json metadata
extensions[]
Transaction InfoBlock #14187917/Trx 875ccc52d0757d3ffb5de2d39c9f47d345ffe0a1
View Raw JSON Data
{
  "trx_id": "875ccc52d0757d3ffb5de2d39c9f47d345ffe0a1",
  "block": 14187917,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-08-01T07:39:45",
  "op": [
    "account_create_with_delegation",
    {
      "fee": "0.500 STEEM",
      "delegation": "57000.000000 VESTS",
      "creator": "steem",
      "new_account_name": "egoto",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM7797PS6hazrJTyJTCCoTLCTdUSnLCKakMEgLU9NnLDALi9B6TC",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6AvKiXPwYqUCNuJ1fL3uzJQso928oXU7ckaFovY4PkiAryUkKa",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5Qgy28ixQhQ4FfGTuGsjztm5pQEsZXcvsmC36SAxT4fMPTNBFz",
            1
          ]
        ]
      },
      "memo_key": "STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw",
      "json_metadata": "",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"http://i.imgur.com/R5MSBHH.png?1"}
JSON METADATA
profile{"profile_image":"http://i.imgur.com/R5MSBHH.png?1"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "http://i.imgur.com/R5MSBHH.png?1"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "http://i.imgur.com/R5MSBHH.png?1"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM7797PS6hazrJTyJTCCoTLCTdUSnLCKakMEgLU9NnLDALi9B6TC1/1
Active
Single Signature
Public Keys
STM6AvKiXPwYqUCNuJ1fL3uzJQso928oXU7ckaFovY4PkiAryUkKa1/1
Posting
Single Signature
Public Keys
STM5Qgy28ixQhQ4FfGTuGsjztm5pQEsZXcvsmC36SAxT4fMPTNBFz1/1
Memo
STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7797PS6hazrJTyJTCCoTLCTdUSnLCKakMEgLU9NnLDALi9B6TC",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6AvKiXPwYqUCNuJ1fL3uzJQso928oXU7ckaFovY4PkiAryUkKa",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5Qgy28ixQhQ4FfGTuGsjztm5pQEsZXcvsmC36SAxT4fMPTNBFz",
        1
      ]
    ]
  },
  "memo": "STM5mTvMVLU86ZNAHTmGCMXhGh3FfoVc83XEBJenGs2m3VZk6qSuw"
}

Witness Votes

0 / 30
No active witness votes.
[]